基于tensorflow权重文件的解读


Posted in Python onMay 26, 2021

1.解读tensorflow权重文件,透过 tf.train.NewCheckpointReader函数。

2.reader.get_variable_to_shape_map()可以得到权重文件里面的tensor名称。

3.reader.get_tensor(key) 可以得到对应tensor的权重值。

基于tensorflow权重文件的解读

import tensorflow as tf
cpktFileName = r'.\models\resnet_v2_152.ckpt'
reader = tf.train.NewCheckpointReader(cpktFileName)
for key in sorted(reader.get_variable_to_shape_map()):
   
    if key.endswith('weights') or key.endswith('biases'):
        keySplits = key.split(r'/')
        print(key)
        print(reader.get_tensor(key))

resnet_v2_152权重 tensor name解读

第一,每个tensor name都以resnet_v2_152开头

第二,tensor name第二段为block,共有四个block。与网络架构有关。

第三,第三字段为unit,每个block里面unit数量不同。与网络架构有关。

第四,除了组后的平坦层,第四字段都为bottleneck_v2

第五,第五字段为‘conv1',‘conv2',‘conv3',‘shortcut'

第六,第六字段为‘weights' or ‘biases'

基于tensorflow权重文件的解读

补充:tensorflow模型的调用,权重查看

以vc版本的tensorpack说明

模型调用

每次运行,会有checkpoint、graph、model生成

1、其中,若文件夹已经有checkpoint,且写有自动掉用上次模型,可以在上次的基础上继续训练,否则重新生成,且不能调用之前的模型,即使已经存在

2、每次运行会重新生成graph,即使上次的已经存在,因此调用上次模型与文件夹中是否有graph无关

权重变量查看

import numpy as np
import tensorflow as tf
import sys
model = sys.argv[1]
tensor = sys.argv[2]
reader = tf.train.NewCheckpointReader(model)
all_variables = reader.get_variable_to_shape_map()
#reader = pywrap_tensorflow.NewCheckpointReader(ckpt_path)
#param_dict = reader.get_variable_to_shape_map()
for key, val in all_variables.items():
    try:
        print key, val
        #key是网络参数名,val是维度
    except:
        pass
w0 = reader.get_tensor(tensor)
np.save('con1d_w.npy',w0)
print(type(w0))
print(w0.shape)
print(w0[0])

文件内容

chekpoint—记录了保存的最新的checkpoint文件以及其它checkpoint文件列表。在inference时,可以通过修改这个文件,指定使用哪个model

基于tensorflow权重文件的解读

MyModel.meta文件保存的是图结构,meta文件是pb(protocol buffer)格式文件,包含变量、op、集合等。

ckpt文件是二进制文件,保存了所有的weights、biases、gradients等变量。在tensorflow 0.11之前,保存在.ckpt文件中。0.11后,通过两个文件保存,如:

MyModel.data-00000-of-00001
MyModel.index

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pycharm中连接mysql数据库的步骤详解
May 02 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
python-itchat 获取微信群用户信息的实例
Feb 21 Python
详解python使用turtle库来画一朵花
Mar 21 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
Python matplotlib模块及柱状图用法解析
Aug 10 Python
python 使用tkinter与messagebox写界面和弹窗
Mar 20 Python
解决Python字典查找报Keyerror的问题
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
tensorflow中的数据类型dtype用法说明
May 26 #Python
详解Python魔法方法之描述符类
May 26 #Python
使用tensorflow 实现反向传播求导
python基础学习之递归函数知识总结
TensorFlow的自动求导原理分析
You might like
php切割页面div内容的实现代码分享
2012/07/31 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
使用php批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
php检测图片主要颜色的方法
2015/07/01 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
jquery 上下滚动广告
2009/06/17 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
js对象的复制继承实例
2015/01/10 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
JS实现打字游戏
2019/12/17 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
用Python中的字典来处理索引统计的方法
2015/05/05 Python
简单了解django缓存方式及配置
2019/07/19 Python
python+django+rest框架配置创建方法
2019/08/31 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
销售人员中英文自荐信
2013/09/22 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
《登鹳雀楼》教学反思
2014/04/09 职场文书
营销学习心得体会
2014/09/12 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers