tensorflow最简单的保存与加载模型的方法是Saver对象(存放在tensorflow.train)。构造器给graph所有的变量,或者定义在列表中的变量,添加save和restore的操作,分别为保存和加载。变量保存在二进制的文件中,主要包含的是从变量名到tensor值的映射关系。
保存变量
通过下面的一段代码穿件Saver对象来管理模型中的变量(默认情况下是所有的变量,也可以自行选择)。
import tensorflow as tf
v1 = tf.Variable(tf.random_normal([1,2]), name="v1")
v2 = tf.Variable(tf.random_normal([2,3]), name="v2")
init_op = tf.initialize_all_variables()
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(init_op)
saver_path = saver.save(sess, "/home/yang/data/model.ckpt")
print "Model saved in file: ", saver_path
恢复变量
用同一个Saver对象来恢复变量,注意,当你从文件恢复变量是,不需要对它进行初始化,否则会报错。
import tensorflow as tf
v1 = tf.Variable(tf.random_normal([1,2]), name="v1")
v2 = tf.Variable(tf.random_normal([2,3]), name="v2")
saver = tf.train.Saver()
with tf.Session() as sess:
saver.restore(sess, "/home/yang/data/model.ckpt")
print "Model restored"