Проблема
Я пытаюсь предсказать проблему двух классов: кошки и не кошки.Мои метки являются двоичными (1 и 0).Проблема, с которой я сталкиваюсь, заключается в том, что Керас всегда предсказывает, что все лица будут кошками, независимо от истинных ярлыков.Я просмотрел несколько похожих сообщений на этом форуме, чтобы выяснить проблему. Ни одна из них не кажется убедительной в моей проблеме.Мой тренировочный набор данных и тестовый набор данных, где должным образом предварительно обработаны (преобразованы, чтобы попасть в диапазон от 0 до 1).Также я понимаю, что точность обучения является средним значением моих входных меток (меток со значениями 0 и 1).
Что я уже пробовал?
- Пытался уменьшить нет.нейронов в моем скрытом слое;
- Скорректирована скорость обучения с различными значениями;
- Скорректирован размер пакета;
- Попытка изменения функции активации в конечном слое;
- Пробовал разные функции потерь;
- Пробовал разные оптимизаторы;
- Гарантировал, что данные обучения перемешаны.
Я воспроизводлю критическиечасти кода ниже для большей проницательности:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(200, input_shape=(12288,),
kernel_initializer='random_uniform',
bias_initializer='zeros'))
model.add(tf.keras.layers.Dense(1, input_shape=(200,), activation='relu',
kernel_initializer='random_uniform',
bias_initializer='zeros'))
model.add(tf.keras.layers.Dense(1, activation='tanh',
kernel_initializer='random_uniform',
bias_initializer='zeros'))
# Compile the model
sgd = tf.keras.optimizers.SGD(lr=0.004, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error',
optimizer=sgd,
metrics=['accuracy'])
model.fit(train_x, train_labels,
batch_size=batch_size,
shuffle=True,
epochs=epochs,
validation_data=(test_x, test_labels))
# Evaluate the model
scores = model.evaluate(test_x, test_labels)
print('Loss: %.3f' % scores[0])
print('Accuracy: %.3f' % scores[1])
Мой вывод всегда такой:
Epoch 14/15
209/209 [==============================] - 0s 1ms/sample - loss: 0.2259 - acc: 0.6555 - val_loss: 0.3237 - val_acc: 0.3400
Epoch 15/15
209/209 [==============================] - 0s 1ms/sample - loss: 0.2261 - acc: 0.6555 - val_loss: 0.3229 - val_acc: 0.3400
50/50 [==============================] - 0s 333us/sample - loss: 0.3229 - acc: 0.3400
Loss: 0.323
Accuracy: 0.340
Эта точность выше является лишь среднейиз всех в моих бинарных учебных целях.