TensorFlow 模型的保存与恢复
1. 模型的保存
- 定义图中创建对象:
saver = tf.train.Saver() #保存所有variable
saver = tf.train.Saver([v1,v2])#只保存列表中的variable
saver = tf.train.Saver({‘v1’:v1,’v2’:v2}) #只保存字典中的variable - 运行图中保存模型:
saver.save(sess, “/temp/tfmodel”,step)
saver = tf.train.Saver()
with tf.Session as sess
#保存在当前文件夹下的temp文件夹,模型名为tfmodel
saver.save(sess, "/temp/tfmodel", total_step)
2. 模型的恢复
需重新定义网络结构的方法:
- 定义图中创建对象:
saver = tf.train.Saver() - 运行图中恢复模型:
saver.restore(sess, “/temp/tfmodel”)
不需重新定义网络结构的方法:
sess=tf.InteractiveSession()
#restore graph
new_saver=tf.train.import_meta_graph('/temp/tfmodel-1000.meta')
#restore parameters
new_saver.restore(sess,"/temp/tfmodel-1000")
graph = tf.get_default_graph()
#根据op的名称获得相应的参数
x=graph.get_operation_by_name('x_input').outputs[0]
#在构建图中添加tf.add_to_collection('predict', y) 以便在加载模型时使用
y=tf.get_collection("predict")[0]