Tensorflow 分区 csv input_fn

Tensorflow partitioned csv input_fn

总而言之,问题是我将要用于训练的数据分成许多较小的 csvs(feat-01.csvfeat-02.csv 等)。我正在尝试将这些提供给 Estimator,更准确地说是通过某种 input_fn.

来做到这一点

我理想的解决方案是拥有某种输入函数,该函数采用 dask.Dataframe(这几乎是我到目前为止生成数据的方式)并将其批量发送到估算器。我尝试了这些方法:

import tensorflow as tf
import dask.dataframe as dd

ddf = dd.read_csv('feat-*.csv')
tf.contrib.learn.extract_dask_data(ddf)

然而这失败了:

TypeError: Expected `meta` to specify type DataFrame, got type Index

由于缺乏直接使用 dask 的文档,我有点放弃了这个想法,尽管一些文档字符串似乎指出它应该是可能的。我正在考虑制作一个 input_fn 以直接从 csv 文件提供它,但我也没有找到关于这个用例的具体示例。

作为一个 TF 菜鸟,我想知道最干净的方法是什么。

更新: 在尝试通过 dask 无果而终地实现它之后,我放弃了这个想法,既因为沮丧,也因为开销可能有点多。

我使用 tf 的队列实现了一个输入函数,效果很好。这里是the code。虽然比我想的简单地将数据帧传递给估算器稍微复杂一些,但在 tensorflow 中完成所有工作似乎是最优雅的方法。

最终更新: 在我发布这个问题后不久,tensorlfow 1.4 发布了,数据集 API 得到了官方支持并得到了更好的记录。如果有人仍然对这个问题感兴趣,我建议你从 TF 文档中查看 this paragraph