【发布时间】:2015-11-19 16:54:17
【问题描述】:
在我在Tensorflow documentation 中看到的所有示例中,输入都是从静态源解析的——通常是一个文件。 是否可以构建一个数据来自不同来源的图表?在我的用例中,数据来自服务器的消息字符串:我想将这些消息在它们到来时转换为张量,并将这些张量用作图形计算部分的输入。
【问题讨论】:
标签: tensorflow
在我在Tensorflow documentation 中看到的所有示例中,输入都是从静态源解析的——通常是一个文件。 是否可以构建一个数据来自不同来源的图表?在我的用例中,数据来自服务器的消息字符串:我想将这些消息在它们到来时转换为张量,并将这些张量用作图形计算部分的输入。
【问题讨论】:
标签: tensorflow
从动态源提供数据的最简单方法是在图表中放置一个或多个 tf.placeholder() 操作来表示输入张量,并在每次调用 @ 时使用 feed mechanism 为这些张量提供不同的值987654329@。如果这样做,则可以编写任意 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 库的所有方法来构建这些值。
【讨论】:
tensorflow::Allocator 接口:github.com/tensorflow/tensorflow/blob/master/tensorflow/core/…(但请注意,这在技术上不是受支持的公共接口的一部分,因此它可能会随着时间而改变)跨度>