tensorflow資料結構-MetaGraphDef
阿新 • • 發佈:2018-11-08
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)以可讀的形式輸出
計算圖結構
- MetaGraphDef(計算圖)
- MetaInfoDef(運算方法)
- OpList(運算方法集合)
- OpDef(運算方法)
- ArgDef(輸入,輸出)
- AttrDef(屬性)
- OpDef(運算方法)
- OpList(運算方法集合)
- GraphDef (連線結構)
- NodeDef(節點)
- SaverDef (模型持久化)
- CheckpointFormatVersion(模型定義使用的版本)
- map<string, CollectionDef> (集合)
- NodeList(節點value)
- BytesList(序列化value)
- map<string, SignatureDef>(簽名)
- AssetFileDef (權重值)
- MetaInfoDef(運算方法)
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;
}