【问题标题】:tensorflow shuffle and batch necessary if building the model sequentially?如果按顺序构建模型,是否需要 tensorflow shuffle 和 batch?
【发布时间】:2020-03-05 16:11:46
【问题描述】:

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

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

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

【问题讨论】:

    标签: python tensorflow recurrent-neural-network tensorflow2.0


    【解决方案1】:

    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 口语化。

    【讨论】:

    • 那么,为什么是 tf.data.Dataset 洗牌?为什么不总是让顺序模式来处理呢?
    • 正如我所说,它们是口语化的。如果您使用数据集,您将主要观察 .shuffle 和 .batch 方法
    猜你喜欢
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2023-02-06
    • 2019-11-18
    • 1970-01-01
    相关资源
    最近更新 更多