Tensorflow读取并输出已保存模型的权重数值

这篇文章是为了对网络模型的权重输出,可以用来转换成其他框架的模型。

import tensorflow as tf
from tensorflow.python import pywrap_tensorflow

#首先,使用tensorflow自带的python打包库读取模型
model_reader = pywrap_tensorflow.NewCheckpointReader(r"model.ckpt")

#然后,使reader变换成类似于dict形式的数据
var_dict = model_reader.get_variable_to_shape_map()

#最后,循环打印输出
for key in var_dict:
    print("variable name: ", key)
    print(model_reader.get_tensor(key))

结果(其中一个权重的示例)

........
variable name:  InceptionV3/Mixed_7c/Branch_3/Conv2d_0b_1x1/weights
[[[[ 0.00013783 -0.00251428  0.02235526 ... -0.01409702  0.00340105
    -0.00752808]
   [ 0.01590012 -0.00258413 -0.00627338 ... -0.03600493  0.01220086
    -0.01254225]
   [-0.02394262 -0.00764508 -0.00895328 ... -0.01731405  0.03568469
     0.00918952]
   ...
   [-0.01865693 -0.00358359 -0.02342288 ...  0.00935838  0.00367858
    -0.00976252]
   [ 0.01297642  0.00223457  0.00652326 ... -0.00762609 -0.0136022
    -0.01129473]
   [-0.01395879 -0.00920246  0.01061887 ...  0.0236958   0.00041993
    -0.01291134]]]]
......

你可能感兴趣的:(Tensorflow,Python,深度学习)