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(计算图)
    • MetaInfoDef(运算方法)
      • OpList(运算方法集合)
        • OpDef(运算方法)
          • ArgDef(输入,输出)
          • AttrDef(属性)
    • GraphDef (连接结构)
      • NodeDef(节点)
    • SaverDef (模型持久化)
      • CheckpointFormatVersion(模型定义使用的版本)
    • map (集合)
      • NodeList(节点value)
      • BytesList(序列化value)
    • map(签名)
    • AssetFileDef (权重值)

MetaGraphDef

message MetaGraphDef {

  // 记录图上的所有运算方法
  MetaInfoDef meta_info_def = 1;

  // GraphDef.
  // 由于MetaInfoDef,已将计算图中所有的运算信息保存了
  // 所以GraphDef就只需要记录计算图的连接结构
  GraphDef graph_def = 2;

  // SaverDef.
  // 在save时,记录需要保存的变量
  SaverDef saver_def = 3;

  // collection_def:从集合名称到集合的映射。
  map collection_def = 4;

  // signature_def:从用户提供的签名密钥映射到单个SignatureDef。
  map signature_def = 5;

  // 与定义的图表一起使用的资源文件Asset file def
  repeated AssetFileDef asset_file_def = 6;
}

你可能感兴趣的:(tensorflow数据结构)