基于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 相关文章推荐
python用Pygal如何生成漂亮的SVG图像详解
Feb 10 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
Python之py2exe打包工具详解
Jun 14 Python
python3 flask实现文件上传功能
Mar 20 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
Oct 04 Python
Python基础之字符串操作常用函数集合
Feb 09 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
Python中的__init__作用是什么
Jun 09 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
python安装sklearn模块的方法详解
Nov 28 Python
python生成随机数、随机字符、随机字符串
Apr 06 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文件上传原理简单分析
2011/05/29 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
javascript 写类方式之七
2009/07/05 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
移动端界面的适配
2017/01/11 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
python 内置函数filter
2017/06/01 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
windows下python安装小白入门教程
2018/09/18 Python
简单了解python的break、continue、pass
2019/07/08 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers