最近在学习tensorflow自带的量化工具的相关知识,其中遇到的一个问题是从tensorflow保存好的ckpt文件或者是保存后的.pb文件(这里的pb是把权重和模型保存在一起的pb文件)读取权重,查看量化后的权重是否变成整形。
因此将自己解决这个问题记录下来,为了下一次遇到时,可以有所参考,也希望给有需要的同学一个可能的参考。
(1) 从保存的ckpt读取变量的值(以读取保存的第一个权重为例)
from tensorflow.python import pywrap_tensorflow
import tensorflow as tf
with tf.Graph().as_default():
with tf.Session() as sess:
ckpt = tf.train.get_checkpoint_state('./model_ckpt') #保存ckpt文件的文件夹
if ckpt and ckpt.model_checkpoint_path:
reader = pywrap_tensorflow.NewCheckpointReader('./model_ckpt/model.ckpt-999') #自己保存的ckpt文件名
all_variables = reader.get_variable_to_shape_map()
w1 = reader.get_tensor("Variable_1")
print(w1.shape)
print(w1)
else: print('No checkpoint file found')
(2) 从保存的.pb文件读取变量的值(以读取保存的第一个权重为例)
import tensorflow as