我想在TensorFlow C ++ 中构建和训练一个由两层组成的图形,并以给定矩阵作为输入来提供它。
我有两个不同的语法示例:
The official C++ example (line # 129)
An old answer in StackOverflow
它们似乎在"输入"的确切语法方面相互矛盾。参数to tensorflow :: Session :: Run()
应该是" placeholder_name:0"或" placeholder_name"?
答案 0 :(得分:1)
任何一个都有效。名称将通过ParseTensorName传递,其中假定没有冒号的名称的输出索引为0.要验证这一点,我们可以添加":0"在DirectSessionMinusAXTest::TestFeed中的Feed名称末尾:
std::vector<std::pair<string, Tensor>> inputs = {{x_, t}};
变为
std::vector<std::pair<string, Tensor>> inputs = {{x_ + ":0", t}};
它仍然通过。
唯一需要传递输出索引的情况(更准确地说是唯一需要它的情况;可能有一些代码缺乏规范化)就是如果你正在提供一个不是第0个输出的Tensor操作(例如&#34;唯一:1&#34;)。这是非常罕见的,因为常量和占位符操作是最可能的Feed目标,并且只有一个输出。