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

时间:2022-09-15 21:53:23

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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))

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
........
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读取并输出已保存模型的权重数值方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/AManFromEarth/article/details/81057577