1、保存查看持久化數據
import tensorflow as tf
# 如果你使用的是CPU版的tensorflow可以將with tf.device('/gpu:0'):去掉
with tf.device('/gpu:0'):
V1 = tf.Variable(tf.constant(1.0, shape=[1]), name='V1')
V2 = tf.Variable(tf.constant(2.0, shape=[1]), name='V2')
result = V1 + V2
init_op = tf.global_variables_initializer()
# 保存模型
saver = tf.train.Saver()
# 將.meta文件轉換成.JSON文件方便我們觀察MetaGraphDef的內容
saver.export_meta_graph(r'E:\ZC\procedure\tensorflow_gpu\model\model.ckpt.meda.json', as_text=True)
meta_info_def中存的是元數據、運算的信息
一、1、stripped_op_list:運算的信息
name表示運算的名字;input_arg表示這個運算的輸入,output_arg表示這個運算的輸出;allowed_values表示使用的數據類型。上圖的op表示這是一個加法運算有兩個輸入一個輸出,使用的類型有float,int16等等。
2、tensorflow_version:他表示你當前使用的tensorflow的版本
3、tensorflow_git_version:他表示你當前使用的git的版本
二、graph_def:節點之間的聯繫,也就是圖的信息,裏面只包含node信息
1、name表示當前節點的名字,也就是tf.Variable(tf.constant(1.0, shape=[1]), name=‘V1’)中name中的值(你自己定義的方便可視化用的,不指定的話系統自動給他一個名字)
2、op:記錄這個節點的具體信息,這個信息放在stripped_info_list中
3、device表示tensorflow在什麼設備上運行,我的是在GPU上運行的並且指定了在0號CPU上運行。
4、shape:記錄這個節點的張量大小.
三、saver_def記錄保存模型的信息:
filename_tensor_name表示保存文件名的張量名稱,因爲是save/Const的第一個輸出所以爲0
save_tensor_name:表示持久化tensorflow模型的運算所對應的節點名稱 ,加載的時候要用。
max_to_keep:表示最多保存最近的5個模型。
keep_checkpoint_every_n_hours:表示多少小時後增加一個模型
四、collection_def:記錄集合信息
key:表示這是個什麼樣的集合,上圖表示這個是一個可訓練的集合。
value裏面有
- bytes_list(維護張量集合)
- int64_list(維護整形集合)
- float_list(維護實數集合)
上圖中的bytes_list中的value表示:需要維護的變量名稱(由系統自己維護)
所有詳細信息在我上傳的文件中。