Tensorflow权重文件怎么理解,有哪些要点
Admin 2022-07-29 群英技术资讯 975 次浏览
1.解读tensorflow权重文件,透过 tf.train.NewCheckpointReader函数。
2.reader.get_variable_to_shape_map()可以得到权重文件里面的tensor名称。
3.reader.get_tensor(key) 可以得到对应tensor的权重值。
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))
第一,每个tensor name都以resnet_v2_152开头
第二,tensor name第二段为block,共有四个block。与网络架构有关。
第三,第三字段为unit,每个block里面unit数量不同。与网络架构有关。
第四,除了组后的平坦层,第四字段都为bottleneck_v2
第五,第五字段为‘conv1',‘conv2',‘conv3',‘shortcut'
第六,第六字段为‘weights' or ‘biases'
补充: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
MyModel.meta文件保存的是图结构,meta文件是pb(protocol buffer)格式文件,包含变量、op、集合等。
ckpt文件是二进制文件,保存了所有的weights、biases、gradients等变量。在tensorflow 0.11之前,保存在.ckpt文件中。0.11后,通过两个文件保存,如:
MyModel.data-00000-of-00001 MyModel.index
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Python提供了许多操作Excel的模块,能够让我们从繁琐的工作中腾出双手。本文主要为大家介绍的是openpyxl模块,它的功能相对与其他模块更为齐全,感兴趣的小伙伴快来学习一下吧
这篇文章给大家分享的是有关python的textwrap库怎么用的内容,通过textwrap库进行操作,我们能更便捷的对多文本进行处理,小编觉得挺实用的,因此分享给大家做个参考,接下来一起跟随小编看看吧。
yaml是Python的第三方库。YAML is a human friendly data serialization standard for all programming languages(YAML是一个对所有编程语言都很友好的数据序列化标准)。
当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。1)忘记在...
在日常的工作中我们总会面临到各式各样的问题,下面这篇文章主要给大家介绍了关于python常用小脚本的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008