tensorflow - 如何从内存地址加载 tensorflow 图

标签 tensorflow

我正在使用 TensorFlow C++ API 从文件加载图形并执行它。一切都工作得很好,但我想从内存而不是从文件加载图形(以便我可以将图形嵌入到二进制文件中以获得更好的可移植性)。我有引用二进制数据(作为无符号字符数组)和数据大小的变量。

这就是我当前加载图表的方式。

GraphDef graph_def;
ReadBinaryProto(tensorflow::Env::Default(), "./graph.pb", &graph_def);

感觉这应该很简单,但大部分讨论都是关于 python API 的。我确实尝试寻找 ReadBinaryProto 的源代码,但无法在tensorflow 存储库中找到它。

最佳答案

以下应该有效:

GraphDef graph_def;
if (!graph_def.ParseFromArray(data, len)) {
    // Handle error
}
...

这是因为 GraphDefgoogle::protobuf::MessageList 的子类,因此继承 a variety of parsing methods

编辑:警告:截至 2017 年 1 月,上面的代码片段仅在序列化图 <64MB 时才有效,因为 default protocol buffer setting 。对于更大的图表,请从 ReadBinaryProto 的实现

中获取灵感

FWIW,ReadBinaryProto 的代码位于 tensorflow/core/platform/env.cc

关于tensorflow - 如何从内存地址加载 tensorflow 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41889453/

相关文章:

python - Tensorflow:如何创建混淆矩阵

tensorflow - 类型错误 : 'AutoTrackable' object is not callable

python - TensorFlow Iris load_csv_with_header( )

python - 火车功能内部和外部的结果不同

python - Keras 模型在训练期间有 2 个输入,但在推理期间只有 1 个输入

python - Tensorflow 膨胀的行为不同于形态膨胀

python - 在 Ubuntu 上安装 Rasterio 失败并出现 ImportError

python - CNN 模型训练 - 资源耗尽(Python 和 Tensorflow)

machine-learning - Keras:使用批量归一化对同一数据集进行不同的训练和验证结果

tensorflow - 如何找到 Tensorflow 最大值索引,但该值是重复的