tensorflow数据结构-GraphDef 计算图结构
1. MetaGraphDef(计算图)
1.
1. OpList(运算⽅法集合)
1. OpDef(运算⽅法)
1. ArgDef(输⼊,输出)
2. AttrDef(属性)
2.
1. NodeDef(节点)
3.
1. CheckpointFormatVersion(模型定义使⽤的版本)
4.
1. NodeList(节点value)
2. BytesList(序列化value)
5.
6.
⽂章⽬录
GraphDef
只关注计算图的连接结构信息, 根据连接结构中”索引“在MetaInfoDef中寻节点运算的具体
message GraphDef {
repeated NodeDef node = 1;
// 版本号
VersionDef versions = 4;
// 实验性的版本号
int32 version = 3 [deprecated = true];
FunctionDefLibrary library = 2;
};
NodeDef
message NodeDef {
//节点的唯⼀标识符,可以通过节点名称来获取相应的节点
string name = 1;
//使⽤的运算⽅法的名称,通过这个名称可在tensorflow计算图元图的    //MetaInfoDef属性中到该运算的剧吐信息
string op = 2;
//⼀个字符串列表,定义运算的输⼊
repeated string input = 3;
//指定该节点运⾏的设备
//通过device属性指定处理这个运算的设备,当device属性为空时,    //Tensorflow将⾃动选择最合适的设备来运⾏这个运算
string device = 4;
// 名字到具体属性的映射
map<string,AttrrValue> attr = 5;
}
案列
graph_def {
// 变量Variable节点
nodo {
name : "v1"
op : "Variable"
attr {
key : "_output_shapes"
value {
list{ shape { dim { size : 1}}}
}
}
attr {
key : "dtype"
value {
tpye : DT_FLOAT
}
}
····
}
// Add 节点
// 指定了2给输⼊,v1/read 表⽰可以读取v1的值,如果v1有多个输出值
// 则必须使⽤ v1/read:src_output 指定,src_output 表⽰节点的第
// src_output输出(从0开始),如果获取的时第1给输出,则可以省略”:src_output"    // 直接写成 v1/read
node {
name : "add"
op : "Add"
input : "v1/read"
input : "v2/read"
···
}
// 该节点时系统在完成Tensorflow模型保存过程中⾃动⽣成的⼀个运算
node {
name : "save/control_dependency"
op : "Identity"
···
tensorflow版本选择
}
// 版本号
versions {
producer : 9
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。