我有一个TensorFlow深度学习工作流程,其中我有一个相当简单的数据读取和使用常规NumPy构建的饲料管道;但我看到TensorFlow提供了大量用于加载数据和构建数据管道的功能。我不知道这些目标是什么情况。这似乎有两个:各种TensorFlow数据加载成语应用的情景是什么?
- 学习,涉及到非常大的现实世界的数据集,并建立与与high-level TensorFlow API
- 网络。
看来,使用"reading" as opposed to "feeding"的好处(例如功能,如tf.train.shuffle_batch
,但即使是简单的助手像tf.one_hot
)适用于前者,而很多的文档为things like input functions,似乎独家后者的目标。
在我的情况下,我正在使用可以使用标准Python轻松读取的文件,并且可以高效地一次性将所有文件加载到内存中,只需使用np.array
就可以很好地工作,其他方法或者看起来也很不错复杂的(读取管道;实际上很慢,我已经厌倦了他们)或不恰当的(“高级”API,因为我大多使用“低级”API)。
我的结论是正确的,鉴于我已经使用TensorFlow本身(而不是低级别的学习API)和喂养NumPy阵列满足我的需求,有没有很好的理由来打扰任何一种替代方法?说这些方法的预期目标与我的不同是否公平?
或者是否有另一种分类法能更好地分析各种TensorFlow数据加载成语以及它们所应用的场景?
这非常有帮助。你能链接到不同的方法吗?例如,我不确定我是否理解“StageOp/Dataset”操作在实际API方面与“队列”有何不同。另外,如果我已经使用“真实”TensorFlow,我认为“高级”API方法并不真正相关。 – orome
这是我在队列中给出的教程中的[幻灯片](https://github.com/yaroslavvb/stuff/blob/master/queues_talk/slides.pdf),但还有其他几个。数据集在这里介绍https://github.com/tensorflow/tensorflow/blob/master/tensorflow/docs_src/programmers_guide/datasets.md。 StageOp记录在官方API /源注释 –
中,我已经[发布了一个后续问题](https://stackoverflow.com/q/45399907/656912),介绍如何将现有的基于Feed的代码映射到Dataset。目前尚不清楚如何做到这一点,特别是对于我所做的日志记录和分析。 – orome