Изображения из набора данных представляют собой несколько (32,32,3) матриц, в то время как Perceptron принимает кучу массивов.
Если форма данных - (n_images, 32,32,3), используйте:
import numpy as np
data = np.mean(data, axis=3)
, чтобы получить массив изображений формы в градациях серого (n_images, 32,32) , затем:
for i in range(n_images):
X_train[i] = data[i].flatten()
, чтобы получить матрицу размером (n_images, 1024).
Вы также хотите иметь метки в n_images-size вектор.
Затем вы устанавливаете перцептрон:
clf = Perceptron()
clf.fit(X_train, y)