基于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局部赋值的规则
Mar 07 Python
python自然语言编码转换模块codecs介绍
Apr 08 Python
python 多线程实现检测服务器在线情况
Nov 25 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
Python中最大递归深度值的探讨
Mar 05 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
Python Gitlab Api 使用方法
Aug 28 Python
python通过函数名调用函数的几种场景
Sep 23 Python
细说NumPy数组的四种乘法的使用
Dec 18 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 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导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
php画图实例
2014/11/05 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
javascript中的new使用
2010/03/20 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
Vue组件化开发思考
2018/02/02 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python实现模拟登录及表单提交的方法
2015/07/25 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
安全事故检讨书
2014/01/18 职场文书
婚前财产公证书
2014/04/10 职场文书
党员自我剖析材料
2014/08/31 职场文书
离婚代理词范文
2015/05/23 职场文书