本文主要是介绍keras 使用tensorboard记录训练日志与结果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.每个epoch结束记录
只需要在fit的时候加上callbacks=[TensorBoard(log_dir='./tmp/log')] 这一句就可以将运行的结果记录下来了。
2.自定义每个batch记录损失函数
class Mylosscallback(Callback):def __init__(self, log_dir):super(Callback, self).__init__()self.val_writer = tf.summary.FileWriter(log_dir)self.num=0def on_train_begin(self, logs={}):self.losses = []def on_batch_end(self, batch, logs={}):self.num=self.num+1val_loss=logs.get('loss')# print(1111)val_loss_summary = tf.Summary()val_loss_summary_value = val_loss_summary.value.add()val_loss_summary_value.simple_value = val_lossval_loss_summary_value.tag = 'loss'self.val_writer.add_summary(val_loss_summary, self.num)self.val_writer.flush()
callbacks=[Mylosscallback(log_dir='./tmp/log')]
3.更加科学的保存模型
filepath = 'model-ep{epoch:03d}-loss{loss:.3f}-val_loss{val_loss:.3f}.h5'
checkpoint = ModelCheckpoint(filepath, monitor='val_loss', verbose=1, save_best_only=True, mode='min')
这样设置会生成多个h5文件,若filepath='mymodel.h5'则只会生成一个文件,同时save_best_only打开之后,如果val_loss 提高了就会保存,没有提高就不会保存。
4.keras模型包括model和weight两个部分
保存model方法一 JSON文件:
model_json = model.to_json()
with open("model.json", "w") as json_file:
json_file.write(model_json)
保存model方法二 Yaml文件:
yaml_string = model.to_yaml()
保存weight方法一 h5文件:
model.save_weights("modelweight.h5")
同时保存model和weight
model.save('model.h5')
加载model:
#json model load
json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
#h5 model load
from keras.models import load_model
model = load_model('model.h5') #weight load
loaded_model.load_weights("model.h5")
这篇关于keras 使用tensorboard记录训练日志与结果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!