tensorflow的模型保存于读取
源自 https://www.cnblogs.com/denny402/p/6940134.html
在模型的保存部分有两个重要的函数,
第一个 : saver = tf.train.Saver( )
我的理解是: 这行代码大概就相当于实例化;
这个函数有一个很重要的参数,max_to_keep, 这个值决定了你要保存最后几次的模型
可能这样说很难让人理解,其实就是这样;
max_to_keep=1 我们保存最后那次修炼的模型 ( 譬如说我们的 epoch = 10, 那么就只会保存第十次训练的模型)
max_to_keep=10 . 则这10次的模型就都会被保存下来,(然而个人感觉这并没有什么卵用)
现在我们有了一个实例化的object了,我们来用第二个函数
saver.save(sess,'ckpt/mnist.ckpt',global_step=step)
从名字就不难看出来,这行代码的作用就是保存,
第一个参数sess自然就不必多说了, 第二个参数设定保存的路径和名字(保存在ckpt文件夹下,名字为mnist. ckpt)
第三个参数严格意义上来说也是用来命名的,他们将训练的次数作为后缀加入到你的文件名字中
譬如说我们的epoch = 10(我的意思是step = 10)
那么我们执行上面的语句,你ckpt文件夹下的文件就会是这样: mnist-10.ckpt
因为不是科班出身,我并没有学过数据库,所以对pointcheck的定义也很含糊,我争取这周简单的看一下这方面的知识然后在回来充分的理解一下。。。。。
在附上我看过的觉得挺好的一篇博客,和大家分享一下https://blog.csdn.net/Laurenitum0716/article/details/79326128
经过上面的两步,我们的模型就保存完毕了,
如果我们想要恢复这个模型,则要用到是restore()函数
我们看到,这个restore一共3个参数,self, sess 自然不必说
第三个参数: save_path指的是保存的模型路径。
我们可以使用tf.train.latest_checkpoint()来自动获取最后一次保存的模型。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ps : open (w--覆盖,a-- 不覆盖)