Tensorflow1.x 和 2.x如何读取ckpt中保存了那些参数
生活随笔
收集整理的這篇文章主要介紹了
Tensorflow1.x 和 2.x如何读取ckpt中保存了那些参数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對于1.x的tf版本,網上已經有很多介紹了,這里給出代碼:
import tensorflow as tf import os from tensorflow.python import pywrap_tensorflowmodel_dir='./model'#設置模型所在文件夾 checkpoint_path = os.path.join(model_dir, "fineturing_model.ckpt")#定位ckpt文件 # 從checkpoint中讀出數據 reader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path) # reader = tf.train.NewCheckpointReader(checkpoint_path) # 用tf.train中的NewCheckpointReader方法 var_to_shape_map = reader.get_variable_to_shape_map() # 輸出權重tensor名字和值 for key in var_to_shape_map:print("tensor_name: ", key,reader.get_tensor(key).shape)對于tensorflow2.0來說,這個代碼是不能正常運行的,會報類似:
module 'tensorflow.python.pywrap_tensorflow' has no attribute 'NewCheckpointReader'
的錯誤,這就是版本的問題,有些博主建議降低tf版本,但是這有點代價太大,下面給出tf2.0的正確使用方式;
import tensorflow.compat.v1 as tf1tf1.disable_v2_behavior() checkpoint_path = 'xxx.ckpt' # Read data from checkpoint file reader = tf1.train.NewCheckpointReader(checkpoint_path) var_to_shape_map = reader.get_variable_to_shape_map() # Print tensor name and values for key in var_to_shape_map:print("tensor_name: ", key)print(reader.get_tensor(key).shape)總結
以上是生活随笔為你收集整理的Tensorflow1.x 和 2.x如何读取ckpt中保存了那些参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tensorflow实现梯度累计,再回传
- 下一篇: 排序算法——直接插入排序