#python-3.x #tensorflow #keras #neural-network
#python-3.x #тензорный поток #keras #нейронная сеть
Вопрос:
Мне не хватает информации об атрибуте ‘val_acc’, когда я подгоняю скомпилированную последовательную модель.
У меня есть последовательная модель, которая скомпилирована с показателями «точности»
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
и я ожидаю получить информацию об атрибутах [‘acc’, ‘loss’, ‘val_acc’, ‘val_loss’] после подгонки этой нейронной сети
history = model.fit(X, Y, epochs=100, batch_size=10)
Но информация о val_acc отсутствует на индикаторе выполнения
Epoch 14/100
768/768 [==============================] - 0s 212us/step - loss: 0.4356 - acc: 0.7969
Epoch 15/100
768/768 [==============================] - 0s 219us/step - loss: 0.4388 - acc: 0.8034
Epoch 16/100
768/768 [==============================] - 0s 220us/step - loss: 0.4398 - acc: 0.7956
И это также отсутствует в истории объектов
>>> print (history.history.keys())
dict_keys(['loss', 'acc'])
Как мне получить недостающие атрибуты (‘val_acc’, ‘val_loss’) при обучении нейронной сети?
Ответ №1:
history = model.fit(X, Y, epochs=100, batch_size=10)
В вашем fit
методе отсутствуют данные проверки, поэтому он не может вычислить показатели проверки.
-
Либо разделите некоторые из ваших данных поезда на набор проверки и передайте его явно через
validation_data
аргумент метода fitили
-
Используйте
validation_split
аргумент метода fit, чтобы использовать некоторый % ваших данных поезда в качестве данных проверки. Пример:validation_split=0.15
будет использоваться 15% ваших данных о поезде в качестве данных проверки.
Комментарии:
1. model.fit(X, Y, epochs = 100, batch_size= 10, validation_split = 0.15) работает идеально!
Ответ №2:
Для всех, кто столкнется с этим в будущем: убедитесь, что ваш генератор проверки не пуст!
В моем случае я забыл добавить данные в переменную генератора проверки и был в замешательстве довольно долгое время, задаваясь вопросом, почему я не получаю потери при проверке или точности, потому что Keras и Python молчат, даже если вы передаете генератор, который ничего не делает