Я тренирую ConvNet с использованием Keras и Theano, но перед этим я решил взглянуть на набор данных, его образцы данных и классы ... И мне не нравится то, что я вижу.
Я использую следующий код для загрузки как обучающих, так и тестовых наборов данных и подсчитываю, сколько образцов данных помечены для каждого:
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 классов.И, конечно же, распределение классов происходит повсеместно, особенно в учебном наборе данных.
Я загружаю неправильный набор данных?Я что-то здесь упускаю?