簡體   English   中英

MNIST 數據集缺少類

[英]MNIST dataset missing classes

我正在使用 Keras 和 Theano 訓練一個 ConvNet,但在此之前我決定先看一看數據集、它的數據樣本和類......而且我不喜歡我所看到的。

我正在使用以下代碼加載訓練數據集和測試數據集,並計算為每個數據集標記了多少數據樣本:

import numpy as np
from keras.datasets import mnist

(X_train, y_train), (X_test, y_test) = mnist.load_data()

train_classes = [0,0,0,0,0,0,0,0,0,0]
test_classes = [0,0,0,0,0,0,0,0,0,0]

for i in y_train:
    train_classes[y_train[i]] = train_classes[y_train[i]] + 1

for i in y_test:
    test_classes[y_test[i]] = test_classes[y_test[i]] + 1

print('Training classes: ', train_classes)
print('\nTesting classes: ', test_classes)

......結果令人擔憂:

(ann) C:\Users\shado\mnist>python statistics.py
Using Theano backend.
Training classes:  [6742, 17900, 5421, 6265, 11907, 5923, 0, 0, 0, 5842]

Testing classes:  [1010, 1924, 1135, 0, 1940, 974, 0, 980, 0, 2037]

因此,從標簽計數中可以看出,訓練數據集缺少“6”、“7”和“8”類,而測試數據集缺少“3”、“6”和“8”類。 當然,類分布無處不在,特別是在訓練數據集上。

我是否下載了錯誤的數據集? 我在這里錯過了什么嗎?

你需要的邏輯是:

for i in y_train:
    train_classes[i] += 1

因為i已經是標簽了。

或等效地:

for i in range(len(y_train)):
    train_classes[y_train[i]] += 1

您當前的代碼基本上是隨機抽樣每組的前 10 個標簽......

注意:您也可以簡單地使用: np.unique(y_train, return_counts=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM