深度学习有可能需要跑很长时间,如果中间断了(特别是在竞价式实例上跑的时候)就要亲命了。本章关于在训练时中途保存模型。本章将:
- 保存点很重要!
- 每轮打保存点!
- 挑最好的模型!
我们开始吧。
使用保存点
长时间运行的程序需要能中途保存,加强健壮性。保存的程序应该可以继续运行,或者直接运行。深度学习的保存点用来存储模型的权重:这样可以继续训练,或者直接开始预测。
Keras有回调API,配合ModelCheckpoint可以每轮保存网络信息,可以定义文件位置、文件名和保存时机等。例如,损失函数或准确率达到某个标准就保存,文件名的格式可以加入时间和准确率等。ModelCheckpoint需要传入fit()函数,也需要安装h5py库。
效果变好就保存
好习惯:每轮如果效果变好就保存一下。还是用第7章的模型,用33%的数据测试。
每轮后在测试数据集上验证,如果比之前效果好就保存权重(monitor=‘val_acc’, mode=‘max’)。文件名格式是weights-improvement-val_acc=.2f.hdf5。