提问者:小点点

在c中为Tensorflow模型定义feed_dict


这个问题与这个问题有关:从Python导出Tensorflow图用于C语言

我正在尝试将Tensorflow模型从Python导出到C。问题是,我的神经网络从一个占位符开始接收输入,这需要一个提要。我找不到任何c API为我的模型提供提要。我能做什么?

如果没有提供feed_dicts的API,我应该如何更改我的模型,以便它可以在没有占位符的情况下为c目的进行训练和导出?


共1个答案

匿名用户

tenstorflow::会话::Run()方法是Pythontf的C等效项。Session.run()方法,它支持使用输入参数馈送张量。就像C和Python中的许多东西一样,它只是使用起来有点棘手(在这种情况下,看起来留档有点差...)。

inputs参数的类型为const std::vector

>

std::pair的第一个元素

p = tf.placeholder(..., name="placeholder")
# ...
sess.run(..., feed_dict={p: ...})

...然后在C中,该对的第一个元素是p.name的值,在本例中为“占位符:0”

std::对的第二个元素

using tensorflow::Tensor;
using tensorflow::TensorShape;

Tensor t(DT_FLOAT, TensorShape({2, 2}));
auto t_matrix = t.matrix<float>();
t_matrix(0, 0) = 1.0;
t_matrix(0, 1) = 0.0;
t_matrix(1, 0) = 0.0;
t_matrix(1, 1) = 1.0;

...然后可以将t作为该对的第二个元素传递。