Tensorflow:数据源可以动态吗?

时间:2015-11-19 16:54:18

标签: tensorflow

在我在Tensorflow documentation中看到的所有示例中,输入都是从静态源解析的 - 通常是文件。 是否有可能构建一个数据来自不同来源的图表?在我的用例中,数据来自服务器的消息字符串:我想在张量中转换这些消息,并使用这些张量作为图形计算部分的输入。

1 个答案:

答案 0 :(得分:4)

从动态来源提供数据的最简单方法是在图表中放置一个或多个tf.placeholder()操作来表示输入张量,并使用feed mechanism为每个张量提供不同的值你拨打run()的时间。如果这样做,可以编写任意Python代码来生成输入数据,这可能涉及调用远程服务器 - 甚至在服务器端处理传入请求。

如果您在C ++中执行此操作,则tensorflow::Session类提供使用Session::Run()方法提供占位符值的相同功能。馈送值必须是tensorflow::Tensor个对象,您可以通过指定数据类型和形状(维度列表)来创建这些对象。 Tensor对象具有允许您将其作为多维数组(如Tensor::scalar<T>()Tensor::matrix<T>()Tensor::tensor<T, NDIMS>())访问的方法,这些方法允许您将其值填写为如下:

tensorflow::Tensor t(DT_FLOAT, tensorflow::TensorShape({2, 2}));
t.matrix()(0, 0) = 1.0;
t.matrix()(0, 1) = 0.0;
t.matrix()(1, 0) = 0.0;
t.matrix()(1, 1) = 1.0;

您还可以使用Eigen Tensor库的所有方法来构建这些值。