tensorflow持續化數據格式(1)

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)

metaGraphDef結構

meta_info_def中存的是元數據、運算的信息
    一、1、stripped_op_list:運算的信息
stripped_info_def的一部分
name表示運算的名字;input_arg表示這個運算的輸入,output_arg表示這個運算的輸出;allowed_values表示使用的數據類型。上圖的op表示這是一個加法運算有兩個輸入一個輸出,使用的類型有float,int16等等。
    2、tensorflow_version:他表示你當前使用的tensorflow的版本
    3、tensorflow_git_version:他表示你當前使用的git的版本
    二、graph_def:節點之間的聯繫,也就是圖的信息,裏面只包含node信息
node信息
1、name表示當前節點的名字,也就是tf.Variable(tf.constant(1.0, shape=[1]), name=‘V1’)中name中的值(你自己定義的方便可視化用的,不指定的話系統自動給他一個名字)
2、op:記錄這個節點的具體信息,這個信息放在stripped_info_list中
op的詳細信息
3、device表示tensorflow在什麼設備上運行,我的是在GPU上運行的並且指定了在0號CPU上運行。
4、shape:記錄這個節點的張量大小.
三、saver_def記錄保存模型的信息:
saver_def
filename_tensor_name表示保存文件名的張量名稱,因爲是save/Const的第一個輸出所以爲0
save_tensor_name:表示持久化tensorflow模型的運算所對應的節點名稱 ,加載的時候要用。
max_to_keep:表示最多保存最近的5個模型。
keep_checkpoint_every_n_hours:表示多少小時後增加一個模型
四、collection_def:記錄集合信息
collect_def
key:表示這是個什麼樣的集合,上圖表示這個是一個可訓練的集合。
value裏面有

  • bytes_list(維護張量集合)
  • int64_list(維護整形集合)
  • float_list(維護實數集合)
    上圖中的bytes_list中的value表示:需要維護的變量名稱(由系統自己維護)
    所有詳細信息在我上傳的文件中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章