1

我最近开始使用tensorflow.contrib.learn(skflow)库并且非常喜欢它。但是,我在使用时遇到了问题Estimator, fit 函数使用

  1. ( X, Y, and batch_size) - 这种方法的问题在于它不支持指定时期数和允许任意数据源的规定。
  2. input_fn- 此外,设置时代,它给我更多的培训来源(在我的情况下直接来自数据库)的灵活性。

现在我知道我可以创建读取文件的 input_fn,但是,由于我对处理文件不感兴趣,因此以下函数对我没有用 -

  • tf.contrib.learn.read_batch_examples
  • tf.contrib.learn.read_batch_features
  • tf.contrib.learn.read_batch_record_features

理想情况下,我想使用StreamingDataFeeder作为 input_fn。有什么想法可以实现这一目标吗?

4

1 回答 1

0

StreamingDataFeeder当您将迭代器提供为x/ yto fit/ predict/ evaluateof 时使用Estimator

例子:

x = (np.array([i]) for i in xrange(10**10)) # use range for python >=3.0
y = (np.array([i + 1]) for i in xrange(10**10))
lr = tf.contrib.learn.LinearRegressor(
    feature_columns=[tf.contrib.layers.real_valued_column('')])

# only consumes 1000*10 values from iterators.
lr.fit(x, y, steps=1000, batch_size=10)

如果您想input_fn用于提供数据 - 您需要使用图形操作来读取/处理数据。例如,您可以创建一个 C++ 操作来生成您的数据(它可以是侦听端口或从数据库操作读取)并转换为Tensor. 这主要有利于从文件中读取数据,但也可以实现其他读取器。

于 2016-10-05T18:45:17.487 回答