用Tensorflow做一些事情,最近遇到的问题是训练到的模型怎么用?
网上搜了一下,最常用的就是使用tf.train.Saver()定义saver变量,然后分别使用saver.save()和saver.restore()载入。
保存代码:
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(init)
save_path = saver.save(sess,"results/model")
保存后,在results目录会生成四个文件:
- checkpoint:该文件记录了模型文件的路径信息
- model.data-00000-of-0001:网络权重信息
- model.index:二进制文件,保存了模型中的变量参数信息
- model.meta:保存了模型的计算图结构信息
tensorflow版本是1.14.0,若tf2.0,因为不再用计算图了,应该会有所不同,以后用到再说。
当然,还可以将中间的训练数据保存下来,而不仅保存最终状态:
saver.save(agent.sess, 'result\\model',global_step=i,write_meta_graph=True)
加上global_step后在迭代过程中保存模型,会在模型文件后加上“-i”,生成一系列的文件。载入的时候可以载