Например, background-Mnist, который я загрузил из файла mat, дает 50 000x784 для обучающего набора.
Должно быть 50000 изображений 28x28
Я изменил все это, используя
f_train = scio.loadmat('mnist_background_images/mnist_background_images_train.mat')
f_test = scio.loadmat('mnist_background_images/mnist_background_images_test.mat')
data_train = f_train['mnist_background_images_train']
data_test = f_test['mnist_background_images_test'] #this gives 50,000x785 where last column is y
x_train = data_train[:, :-1]
x_test= data_test[:, :-1] #now it's 50,000x784
x_train = np.reshape(x_train, newshape=(-1, 28, 28 )) #new shape 50,000x28x28
x_test = np.reshape(x_test, newshape=(-1, 28, 28))
, что дает правильный размер.
Однако, когда я пытался показать каждое изображение с помощью
img = x_train[2]
out = Image.fromarray(img, mode = 'L')
print(x_train.shape)
, дает (50000, 784)
Изображение получилось совсем не похожим на данные MNIST. Пиксели были перепутаны и повсюду как будто все перемешалось. Я где-то сделал глупую ошибку?