Python Keras自定义回调以保存历史字典和回调顺序
我想在每个时代保存整个训练历史词典。似乎Python Keras自定义回调以保存历史字典和回调顺序,python,tensorflow,keras,Python,Tensorflow,Keras,我想在每个时代保存整个训练历史词典。似乎keras.callbacks.History()在.History对象中生成了这个字典?我正在编写一个回调,以便在每个历元将字典保存为json,如下所示 class MyCallback(ks.callbacks.Callback): def __init__(self,model_folder_path): self.model_folder_path = model_folder_path def on_epoch_
keras.callbacks.History()
在.History
对象中生成了这个字典?我正在编写一个回调,以便在每个历元将字典保存为json,如下所示
class MyCallback(ks.callbacks.Callback):
def __init__(self,model_folder_path):
self.model_folder_path = model_folder_path
def on_epoch_end(self, epoch, logs={}):
this_path = os.path.join(self.model_folder_path,"History epoch {:02d}.json".format(epoch))
with open(this_path, 'w') as fh:
json.dump(self.model.history.history, fh)
print("Saved history to {}".format(this_path))
并添加到我的回调列表中。当我运行培训时,每个历史对象都缺少当前历元的历史记录-我假设这意味着
keras.callbacks.history()
callback在我的回调之后被调用,因此我的回调没有看到当前的更改。这是正确的吗?我可以指定我的回调在调用顺序中最后一个吗?同时我尝试了keras.callbacks.csvloger
,但我想直接保存字典。我在GitHub上找到了一个链接-还有其他提示吗 要将模型的历史记录保存到文件中,而不是使用json.dump
使用
with open('/path_to_your_history', 'wb') as file_pi:
pickle.dump(history.history, file_pi)
其中,历史记录是
model.fit()的输出。
问题不在于格式,而在于方法的调用顺序。