Объект, который вы связываете с history
в глобальном пространстве имен, не существует, пока не вернется model.fit
. Это означает, что он не находится в глобальном пространстве имен, когда fit
вызывает ваш обратный вызов.
Помимо доступа к переменной, которая не существует, строки, открывающие файл, перезаписывают содержимое при каждом выполнении обратного вызова.
Наиболее вероятное решение - переместить следующее вне вашей функции в глобальное пространство имен после привязки history
:
with open('C:/Users/trainingHistory', 'wb') as file_pi:
pickle.dump(history.history, file_pi)