前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tensorflow学习笔记(五):变量保存与导入

tensorflow学习笔记(五):变量保存与导入

作者头像
ke1th
发布2019-05-26 12:26:40
6350
发布2019-05-26 12:26:40
举报

如何使用tensorflow内置的参数导出和导入方法:基本用法

如果你还在纠结如何保存tensorflow训练好的模型参数,用这个方法就对了

The Saver class adds ops to save and restore variables to and from checkpoints. It also provides convenience methods to run these ops.来自官网的介绍。

import tensorflow as tf
"""
变量声明,运算声明 例:w = tf.get_variable(name="vari_name", shape=[], dtype=tf.float32)
初始化op声明
"""
#创建saver对象,它添加了一些op用来save和restore模型参数
saver = tf.train.Saver()

with tf.Session() as sess:
    sess.run(init_op)
    #训练模型。。。
    #使用saver提供的简便方法去调用 save op
    saver.save(sess, "save_path/file_name.ckpt") #file_name.ckpt如果不存在的话,会自动创建
#后缀可加可不加

现在,训练好的模型参数已经存储好了,我们来看一下怎么调用训练好的参数

变量保存的时候,保存的是 变量名:value,键值对。restore的时候,也是根据**key-value**来进行的(详见)

import tensorflow as tf
"""
变量声明,运算声明
初始化op声明
"""
#创建saver 对象
saver = tf.train.Saver()

with tf.Session() as sess:
    sess.run(init_op)#在这里,可以执行这个语句,也可以不执行,即使执行了,初始化的值也会被restore的值给override
    saver.restore(sess, "save_path/file_name.ckpt-???") 
    #会将已经保存的变量值resotre到变量中,自己看好要restore哪步的 

如何restore变量的子集,然后使用初始化op初始化其他变量

#想要实现这个功能的话,必须从Saver的构造函数下手
saver=tf.train.Saver([sub_set])
init = tf.initialize_all_variables()
with tf.Session() as sess:
  #这样你就可以使用restore的变量替换掉初始化的变量的值,而其它初始化的值不受影响
  sess.run(init)
  if restor_from_checkpoint:
      saver.restore(sess,"file.ckpt")
  # train
  saver.save(sess,"file.ckpt")

参考资料

https://www.tensorflow.org/versions/r0.12/how_tos/variables/index.html#saving-and-restoring

https://www.tensorflow.org/versions/r0.12/api_docs/python/state_ops.html#Saver

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年10月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何使用tensorflow内置的参数导出和导入方法:基本用法
    • 如果你还在纠结如何保存tensorflow训练好的模型参数,用这个方法就对了
    • 如何restore变量的子集,然后使用初始化op初始化其他变量
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档