我是TensorFlow C ++ API的新手,并尝试在Python中构建一个非常简单的图形并在C ++ API中加载/测试它。以下是创建图形的python代码:
with tf.Session() as sess:
a = tf.placeholder(tf.float32, shape=[2,2], name='a')
b = tf.placeholder(tf.float32, shape=[2,2], name='b')
c = tf.matmul(a, b, name="c")
sess.run(tf.initialize_all_variables())
tf.train.write_graph(sess.graph_def, 'models/', 'graph.pb', as_text=False)
以下是加载和运行图表的C代码:
Tensor a(DT_FLOAT, TensorShape({2,2}));
Tensor b(DT_FLOAT, TensorShape({2,2}));
std::vector<std::pair<string, tensorflow::Tensor>> inputs = {
{ "a", a },
{ "b", b },
};
std::vector<tensorflow::Tensor> outputs;
status = session->Run(inputs, {"c"}, {}, &outputs);
但是我收到此错误消息:
./ tensorflow / core / framework / tensor.h:500]检查失败:1 == NumElements()(1对4)必须有一个元素张量
可能是什么问题?我注意到如果我在python和C ++中将我的张量定义为[1,1],它会没有任何问题!