如果按顺序构建模型,tensorflow shuffle 和 batch 是否必要?

tensorflow shuffle and batch necessary if building the model sequentially?

我正在查看循环神经网络演练 here。在教程中,他们有一个行项目:

dataset = dataset.shuffle(BUFFER_SIZE).batch(BATCH_SIZE, drop_remainder=True)

但是,如果您要进行顺序构建,是否仍然有必要?查看 sequential 文档,自动执行随机播放?如果不是,为什么要在这里完成?有效果的简单数值例子吗?

tf.keras.models.Sequential 也可以对数据进行批处理和混洗,类似于 tf.data.Dataset 所做的。 Sequential 中提供了这些预处理功能,因为它可以采用多种类型的数据,例如 NumPy 数组、tf.data.Datasetdict 对象以及 tf.keras.utils.Sequence.

tf.data.Dataset API 提供这些功能是因为 API 与其他 TensorFlow API 一致(其中不涉及 Keras)。

我认为洗牌和批处理不需要进行两次。如果你愿意,你可以删除它,它不会影响模型的训练。我认为作者想使用 tf.data.Dataset 将数据导入 Keras 模型。 dataset.shuffle( ... ).batch( ... ) 已经和 Dataset 口语化了。