每次卷积神经网络训练的结果都只保存了最后一部分,查阅了一下相关资料,发现是定义saver时采用的默认值,这里进行如下设置:
1
2
3
4
5
6
7
8
9
10
11
|
saver = tf.train.Saver( max_to_keep = 100 , keep_checkpoint_every_n_hours = 1 ) |
补充:解决TensorFlow只能保存5个模型的问题
直奔主题
在训练模型的代码中找到这句代码:tf.train.Saver(),
改成:
1
|
tf.train.Saver(max_to_keep = m) # m为你想保存的模型数量 |
扩展
Saver类中的可选参数
1
|
tf.train.Saver(max_to_keep = m, keep_checkpoint_every_n_hours = n) |
max_to_keep
保存离当前训练最近的模型数量,默认值为5。如果想全部保存,并且电脑内存够用,设成多大都可以。
keep_checkpoint_every_n_hours
每隔n个小时保存一次模型,默认值为10,000(一般情况下应该不会训练这么长时间,所以相当于是不会按照时间来保存,按照设置的epoch保存节点数来保存)。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/weixin_41863859/article/details/80222306