• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    基于tensorflow权重文件的解读

    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))
            
    

    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模型的调用,权重查看

    以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

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Tensorflow 1.0之后模型文件、权重数值的读取方式
    • tensorflow 保存模型和取出中间权重例子
    • tensorflow 模型权重导出实例
    • 在Tensorflow中查看权重的实现
    • Tensorflow读取并输出已保存模型的权重数值方式
    • tensorflow 输出权重到csv或txt的实例
    • TensorFlow中权重的随机初始化的方法
    上一篇:解决Python字典查找报Keyerror的问题
    下一篇:python结合多线程爬取英雄联盟皮肤(原理分析)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    基于tensorflow权重文件的解读 基于,tensorflow,权重,文件,