之前在别人的代码中看到训练日志的保存,也想用到自己的模型中,学习下后发现原理很简单,这里简要总结下:
train_log_filename = "train_log.txt"
train_log_filepath = os.path.join(result_dir, train_log_filename)
设置要保存的训练日志对应的路径,其中result_dir是用来存储所有结果的文件夹,结果包括但不限于:模型参数、训练日志、测试精度等;
train_log_txt_formatter = "{time_str} [Epoch] {epoch:03d} [Loss] {loss_str}\n"
设置训练日志中每条记录的格式,“{}”括起来的表示之后要填入具体的内容,其他则是固定不变的字符串,我们会记录时间、epoch和损失函数值;
to_write = train_log_txt_formatter.format(time_str=time.strftime("%Y_%m_%d_%H:%M:%S"),
epoch = epoch,
loss_str=" ".join(["{}".format(loss)]))
在训练日志的记录格式train_log_txt_formatter
中加入训练得到的具体内容,获得新的写入字符串to_write
with open(train_log_filepath, "a") as f:
f.write(to_write)
打开要存储的训练日志文件,将记录写入,待训练结束后查看。