tensorflow 模型权重导出实例


Posted in Python onJanuary 24, 2020

tensorflow在保存权重模型时多使用tf.train.Saver().save 函数进行权重保存,保存的ckpt文件无法直接打开,不利于将模型权重导入到其他框架使用(如Caffe、Keras等)。

好在tensorflow提供了相关函数 tf.train.NewCheckpointReader 可以对ckpt文件进行权重查看,因此可以通过该函数进行数据导出。

import tensorflow as tf
import h5py

cpktLogFileName = r'./checkpoint/checkpoint' #cpkt 文件路径
with open(cpktLogFileName, 'r') as f:
  #权重节点往往会保留多个epoch的数据,此处获取最后的权重数据   
  cpktFileName = f.readline().split('"')[1]   

h5FileName = r'./model/net_classification.h5'

reader = tf.train.NewCheckpointReader(cpktFileName)
f = h5py.File(h5FileName, 'w')
t_g = None
for key in sorted(reader.get_variable_to_shape_map()):
  # 权重名称需根据自己网络名称自行修改
  if key.endswith('w') or key.endswith('biases'):
    keySplits = key.split(r'/')
    keyDict = keySplits[1] + '/' + keySplits[1] + '/' + keySplits[2]
    f[keyDict] = reader.get_tensor(key)

以上这篇tensorflow 模型权重导出实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python  连接字符串(join %)
Sep 06 Python
在Docker上开始部署Python应用的教程
Apr 17 Python
玩转python爬虫之URLError异常处理
Feb 17 Python
Python中list查询及所需时间计算操作示例
Jun 21 Python
python 实现求解字符串集的最长公共前缀方法
Jul 20 Python
python 实现调用子文件下的模块方法
Dec 07 Python
Python实现二叉搜索树BST的方法示例
Jul 30 Python
Python利用WMI实现ping命令的例子
Aug 14 Python
Python发送邮件的实例代码讲解
Oct 16 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
为什么是 Python -m
Jun 19 Python
Python实现AES加密,解密的两种方法
Oct 03 Python
在Tensorflow中查看权重的实现
Jan 24 #Python
tensorflow求导和梯度计算实例
Jan 23 #Python
Tensorflow的梯度异步更新示例
Jan 23 #Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 #Python
Tensorflow实现部分参数梯度更新操作
Jan 23 #Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 #Python
使用tensorflow显示pb模型的所有网络结点方式
Jan 23 #Python
You might like
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
javascript中floor使用方法总结
2019/02/02 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
python网络编程示例(客户端与服务端)
2014/04/24 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
Python中字符串的处理技巧分享
2016/09/17 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
CLR与IL分别是什么含义
2016/08/23 面试题
怀念母亲教学反思
2014/04/28 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
高中生逃课检讨书
2014/10/10 职场文书
学籍证明模板
2014/11/21 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
医德医风个人总结
2015/02/28 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏
python解析照片拍摄时间进行图片整理
2022/07/23 Python