Я относительный новичок, когда дело доходит до машинного обучения.
Я играл с Keras с TensorFlow в качестве бэкэнда и по какой-то причине я не получаю хорошую точность, когда использую набор данных CIFAR-10.
Это мой код.
model = Sequential()
batch_size = 250
model.add(Dense(100, input_shape = (3072, ), activation='relu',
bias_initializer = 'RandomNormal',kernel_regularizer=regularizers.l2(.01)))
model.add(Dense(50))
model.add(Dense(10))
model.compile(optimizer=keras.optimizers.SGD(lr=0.004),
loss='hinge', metrics=['categorical_accuracy'])
model.fit(x=X_train, y=utils.to_categorical(Y_Train, num_classes = 10),
batch_size = batch_size, epochs = 100, validation_split = .4)
X_Train - это массив (50000, 3072) numpy, а Y_Train - (50000, 1) массив numpy.
РезультатЯ получил
потери: 1,1865
категорическая точность: 0,1696
val_loss: 1,1859
val_categorical_accuracy: 0,1668
в 100 эпохах.
Моя установка Ubuntu 18.04, Python 3.6, Numpy 1.16, Keras 2.2.4
Что-то не так в моем коде или тот факт, что полностью подключенная нейронная сеть - просто плохая настройкадля классификации изображений и нужно использовать сверточную нейронную сеть?