概念性问题Tensorflow 数据集……为什么要使用它?

问题描述

我正在参加 Tensorflow 2 的 MOOC,课堂上的作业坚持要求我们需要使用 tf 数据集;然而,似乎要对数据集做任何事情都必须跳过所有环节,这意味着一切都比使用 Pandas 数据框或 NumPy 数组困难得多......那为什么要使用它?

解决方法

您提到的内容通常适用于小数据,因为数据集可以全部放入 RAM(通常为几 GB)中。

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

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