Ни одна из доступных опций для сохранения моделей в Keras не включает историю тренировок , что именно то, что вы просите здесь.Чтобы сохранить эту историю доступной, вы должны внести некоторые тривиальные изменения в свой обучающий код, чтобы сохранить его отдельно;Вот воспроизводимый пример, основанный на примере Keras MNIST и только 3 обучающих эпох:
hist = model.fit(x_train, y_train,
batch_size=batch_size,
epochs=3,
verbose=1,
validation_data=(x_test, y_test))
hist
является обратным вызовом Keras и включает в себя словарь history
, которыйсодержит метрики, которые вы ищете:
hist.history
# result:
{'acc': [0.9234666666348775, 0.9744000000317892, 0.9805999999682109],
'loss': [0.249011807457606, 0.08651042315363884, 0.06568188704450925],
'val_acc': [0.9799, 0.9843, 0.9876],
'val_loss': [0.06219216037504375, 0.04431889447008725, 0.03649089169385843]}
т.е. метрики обучения и проверки (здесь потери и точность) для каждой из эпох обучения (здесь 3).
Теперь этотривиально сохранить этот словарь с помощью Pickle и восстановить его по мере необходимости:
import pickle
# save:
f = open('history.pckl', 'wb')
pickle.dump(hist.history, f)
f.close()
# retrieve:
f = open('history.pckl', 'rb')
history = pickle.load(f)
f.close()
Простая проверка здесь подтверждает, что исходная и извлеченные переменные действительно идентичны:
hist.history == history
# True