基于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从ftp下载数据保存实例
Nov 20 Python
跟老齐学Python之画圈还不简单吗?
Sep 20 Python
Python中的Numeric包和Numarray包使用教程
Apr 13 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
通过celery异步处理一个查询任务的完整代码
Nov 19 Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 Python
pytorch自定义二值化网络层方式
Jan 07 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
Python实现定时监测网站运行状态的示例代码
Sep 30 Python
Django搭建项目实战与避坑细节详解
Dec 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 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
2015/01/04 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
javascript中createElement的两种创建方式
2015/05/14 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
高三毕业典礼主持词
2014/03/27 职场文书
合作协议书模板2014
2014/09/26 职场文书
会计求职简历自我评价
2015/03/10 职场文书
学校远程教育工作总结
2015/08/11 职场文书
求职自我评价参考范文
2019/05/16 职场文书