我想在每个时期保存整个培训历史字典。看来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()
回调,因此我的回调没有看到当前的变化。它是否正确?我可以指定我的回调在呼叫顺序中排在最后吗?在此期间,我尝试过keras.callbacks.CSVLogger
,但我想直接保存字典。我在GitHub上找到了stale issue-其他提示?
答案 0 :(得分:0)
要将模型的历史记录保存到文件中,而不是使用json.dump
,请使用
with open('/path_to_your_history', 'wb') as file_pi:
pickle.dump(history.history, file_pi)
历史记录是model.fit()