1. 程式人生 > >tensorflow資料結構-MetaGraphDef

tensorflow資料結構-MetaGraphDef

tensorflow資料結構

https://github.com/tensorflow/tensorflow/blob/r1.11/tensorflow/core/protobuf/meta_graph.proto

《Tensorflow實戰深度學習框架》

​ Tensorflow的計算圖在執行時,以MetaGrapDef的形式實行計算圖,並且在進行計算圖儲存(save)時,將MetaGraphDef以二進位制的形式寫入磁碟,在儲存模型產生的3個的檔案中,MetaGraphDef儲存在.meta檔案中;其中模型經過訓練的模型引數,權重,可訓練的變數儲存在.data檔案中;張量名到張量的對應對映關係儲存在.index

檔案中

​ 這裡使用tf.train.Saver().export_meta_grah("../model.ckpt.meda.json")將計算圖(MetaGrapDef)以可讀的形式輸出


計算圖結構

  1. MetaGraphDef(計算圖)

MetaGraphDef

message MetaGraphDef {

  // 記錄圖上的所有運算方法
  MetaInfoDef meta_info_def = 1;

  // GraphDef.
  // 由於MetaInfoDef,已將計算圖中所有的運算資訊儲存了
  // 所以GraphDef就只需要記錄計算圖的連線結構
  GraphDef graph_def = 2;

  // SaverDef.
  // 在save時,記錄需要儲存的變數
  SaverDef saver_def = 3;

  // collection_def:從集合名稱到集合的對映。
  map<string, CollectionDef> collection_def = 4;

  // signature_def:從使用者提供的簽名金鑰對映到單個SignatureDef。
  map<string, SignatureDef> signature_def = 5;

  // 與定義的圖表一起使用的資原始檔Asset file def
  repeated AssetFileDef asset_file_def = 6;
}