打印tensorflow恢复模型中所有变量与操作节点方式


Posted in Python onMay 26, 2020

我就废话不多说了,大家还是直接看代码吧!

#参数恢复
    self.sess=tf.Session()
    saver = tf.train.import_meta_graph(os.path.join(model_fullpath,'model.ckpt-7.meta'))
    module_file = tf.train.latest_checkpoint(model_fullpath)
    saver.restore(self.sess, module_file)
    variable_names = [v.name for v in tf.trainable_variables()]
    variable_names = [v.name for v in tf.global_variables()]
    values = self.sess.run(variable_names)
    i=0
    for k, v in zip(variable_names, values):
      i+=1
      if k.find('encode')!=-1:
        print(f"第 {i} 个variable")
        print("Variable: ", k)
        print("Shape: ", v.shape)
        print(v)
    graph = tf.get_default_graph()
    all_ops = graph.get_operations()
    for el in all_ops:
      print(el.name)

输出结果:

打印tensorflow恢复模型中所有变量与操作节点方式

补充知识:TensorFlow:.ckpt文件与.ckpt.meta和.ckpt.index以及.pb文件之间的关系是什么?

再使用 tf.train.Saver() 保存参数通常会生成以下文件

打印tensorflow恢复模型中所有变量与操作节点方式

那么这些文件具体是什么呢?

.ckpt文件:是旧版本的输出saver.save(sess),相当于你的.ckpt-data

“checkpoint”:文件仅用于告知某些TF函数,这是最新的检查点文件。

.ckpt-meta:包含元图,即计算图的结构,没有变量的值(基本上你可以在tensorboard / graph中看到)。

.ckpt-data:包含所有变量的值,没有结构。

.ckpt-index:可能是内部需要的某种索引来正确映射前两个文件,它通常不是必需的

你可以只用 .ckpt-meta 和恢复一个模型 .ckpt-data

要在python中恢复模型,您通常会使用元数据和数据文件(但您也可以使用该.pb文件):

saver = tf.train.import_meta_graph(path_to_ckpt_meta) saver.restore(sess, path_to_ckpt_data)

该.pb文件可以保存您的整个图表(元+数据)

要在c ++中加载和使用(但不训练)图形,您通常会使用它来创建freeze_graph,它会.pb从元数据和数据创建文件。

要小心,(至少在以前的TF版本和某些人中)py提供的功能freeze_graph不能正常工作,所以你必须使用脚本版本。

以上这篇打印tensorflow恢复模型中所有变量与操作节点方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python操作xml文件详细介绍
Jun 09 Python
Python中的闭包实例详解
Aug 29 Python
Python中生成器和yield语句的用法详解
Apr 17 Python
Python中字符串对齐方法介绍
May 21 Python
python 计算两个日期相差多少个月实例代码
May 24 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
Python中的上下文管理器和with语句的使用
Apr 17 Python
Python中is和==的区别详解
Nov 15 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
python跨文件使用全局变量的实现
Nov 17 Python
Python 匹配文本并在其上一行追加文本
May 11 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 #Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 #Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 #Python
Django+Celery实现动态配置定时任务的方法示例
May 26 #Python
python删除某个目录文件夹的方法
May 26 #Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 #Python
Pytorch转onnx、torchscript方式
May 25 #Python
You might like
PHP下对数组进行排序的函数
2010/08/08 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
js实现继承的5种方式
2015/12/01 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
python django事务transaction源码分析详解
2017/03/17 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
Java程序员面试题
2013/07/15 面试题
销售经理工作职责
2014/02/03 职场文书
称象教学反思
2014/02/03 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
公司晚会主持词
2019/04/17 职场文书
Redis 限流器
2022/05/15 Redis