连接不同GraphDef的节点

时间:2017-10-09 13:27:05

标签: c++ tensorflow

从Python,我有一个目前在C ++环境中使用的冻结graph.pb。现在输入张量的数据当前在CPU上进行了预处理,但我想在另一个GraphDef中执行此步骤以在GPU上运行它,但我似乎找不到在两个节点之间连接节点的方法{ {1}}' S

让我们假设我的冻结图有一个名为GraphDef的输入/占位符,我想要连接下面的预处理步骤

mid

我通常使用tf::GraphDef create_graph_extension() { tf::Scope root = tf::Scope::NewRootScope(); auto a = tf::ops::Const(root.WithOpName("in"), {(float) 23.0, (float) 31.0}); auto b = tf::ops::Identity(root.WithOpName("mid"), a); tf::GraphDef graph; TF_CHECK_OK(root.ToGraphDef(&graph)); return graph; } 在同一会话中运行多个图表,但始终确保其节点名称是唯一的。对于我希望连接的非唯一节点名称,我收到错误

session->Extend()

P.S。好像至少可以在python中使用link

1 个答案:

答案 0 :(得分:0)

您可以使用与Python建议相同的想法来实现您正在寻找的东西 - 将一个GraphDef导入另一个并重新映射输入。

如果你使用的是C API(有stability guarantees),你可以查看:

这些是在C ++ ImportGraphDef函数之上实现的,您可以直接使用它(尽管它似乎还不是导出的C ++ API的一部分)

希望有所帮助。