大多数教程都关注整个训练数据集适合内存的情况.但是,我有一个迭代器,它充当(特征,标签)-tuples的无限流(在运行中便宜地创建它们).
在实现input_fnfor tensorflows 估算器时,我可以从迭代器返回一个实例
def input_fn():
(feature_batch, label_batch) = next(it)
return tf.constant(feature_batch), tf.constant(label_batch)
Run Code Online (Sandbox Code Playgroud)
或者input_fn必须在每次通话时返回相同的(功能,标签) - 元组?
此外,在训练期间多次调用此函数,因为我希望它类似于以下伪代码:
for i in range(max_iter):
learn_op(input_fn())
Run Code Online (Sandbox Code Playgroud)
的参数input_fn在整个训练过程中使用,但函数本身被调用一次。因此,创建一个超出教程input_fn中所解释的返回常量数组的复杂对象并不那么简单。
input_fnTensorflow为numpy和panda数组提出了两个这样的例子,但它们是从内存中的数组开始的,所以这不能帮助您解决问题。
您还可以通过上面的链接查看他们的代码,了解他们如何实现高效的非平凡的input_fn,但您可能会发现它需要更多您想要的代码。
如果您愿意使用 Tensorflow 的较低级别接口,恕我直言,事情会更简单、更灵活。有一个教程涵盖了大多数需求,并且建议的解决方案很容易(呃)实施。
特别是,如果您已经有一个可以返回问题中所描述的数据的迭代器,那么使用占位符(上一个链接中的“馈送”部分)应该很简单。
| 归档时间: |
|
| 查看次数: |
3327 次 |
| 最近记录: |