(概念题)Tensorflow数据集……为什么要用?

(Conceptual question) Tensorflow dataset... why use it?

我正在学习 Tensorflow 2 的 MOOC,在 class 中,作业坚持要求我们使用 tf 数据集;然而,似乎你必须跳过所有的障碍才能对数据集做任何事情,这意味着一切都比使用 Pandas 数据框或 NumPy 数组要困难得多...那么为什么要使用它呢?

你提到的东西通常适用于小数据,当一个数据集可以全部放入 RAM(通常是几 GB)时。

实际上,数据集通常比这大得多。处理此问题的一种方法是将数据集存储在硬盘上。还有其他更复杂的存储解决方案。 TF DataSets 允许您轻松地与这些存储解决方案交互。您在脚本中创建代表存储的 DataSet 对象,然后就您而言,您可以像往常一样在其上训练模型。但在幕后,TF 反复将数据读入 RAM,使用它,然后丢弃它。

TF Datasets 提供了许多处理大数据的有用方法,例如预取(与其他东西同时进行存储读取和数据预处理),多线程(同时对多个示例进行预处理等计算) ,洗牌(当你不能每次都在 RAM 中重新排序数据集时,这更难做到)和批处理(准备几个示例集以作为批次提供给模型)。使用 Pandas 或 NumPy 以优化的方式自己做所有这些事情会很痛苦。