我正在使用 TensorFlow C++ API 从文件加载图形并执行它。一切都工作得很好,但我想从内存而不是从文件加载图形(以便我可以将图形嵌入到二进制文件中以获得更好的可移植性)。我有引用二进制数据(作为无符号字符数组)和数据大小的变量。
这就是我目前加载图表的方式。
GraphDef graph_def;
ReadBinaryProto(tensorflow::Env::Default(), "./graph.pb", &graph_def);
感觉这应该很简单,但大部分讨论都是关于 python API 的。我确实尝试寻找来源ReadBinaryProto
但无法在张量流存储库中找到它。
以下应该有效:
GraphDef graph_def;
if (!graph_def.ParseFromArray(data, len)) {
// Handle error
}
...
这是因为GraphDef
是一个子类google::protobuf::MessageList
,从而继承多种解析方法 https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message_lite#parsing
编辑:警告:截至 2017 年 1 月,上面的代码片段仅在序列化图 默认协议缓冲区设置。对于更大的图表,请从中获取灵感ReadBinaryProto
的实施
FWIW,代码为ReadBinaryProto
is in tensorflow/core/platform/env.cc https://github.com/tensorflow/tensorflow/blob/a304537954a865752ad1b18461e6bd67b36082db/tensorflow/core/platform/env.cc#L321
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)