【问题标题】:How dose the setting of steps_per_epoch and epochs affect the training result in Keras?steps_per_epoch 和 epochs 的设置如何影响 Keras 中的训练结果?
【发布时间】:2019-01-04 02:01:47
【问题描述】:

我的生成器总是从我的数据集中随机生成两张图像,然后我使用这两个样本计算损失。假设我设置了steps_per_epoch=40epochs=5,如果我设置steps_per_epoch=5epochs=40 有什么区别(我使用Adam 作为我的优化器)?

【问题讨论】:

    标签: machine-learning keras epoch unsupervised-learning adam


    【解决方案1】:

    epochs 参数(也称为迭代)是指对整个训练数据进行完整传递的次数。 steps_per_epoch 参数是指一个时期内生成的批次数。因此我们有steps_per_epoch = n_samples / batch_size

    例如,如果我们有 1000 个训练样本并且我们将批量大小设置为 10,那么我们有 steps_per_epoch = 1000 / 10 = 100。无论batch-size或steps_per_epoch的值如何,都可以设置epochs

    对于所有场景都没有确定的批量大小值。通常,非常大的批大小会减慢训练过程(即模型需要更多时间才能收敛到解决方案),而非常小的批大小可能无法很好地利用可用资源(即 GPU 和 CPU) .通常的值包括 32、64、128、256、512(2 的幂有助于更快的 GPU 内存分配)。此外,here is an answer on SO 关注此问题,其中包括对相关书籍和论文的引用。或者查看 this question 及其在 Cross Validated 上的答案,以获得更完整的批量大小定义。

    【讨论】:

    • 但是它如何影响结果呢?对于 1000 个训练样本,如果我将 batch_size 设置为 100,然后 step_per_epoch 将为 10。这会对训练产生不同的影响吗?
    • @TeresaHo 我更新了我的帖子。请看一下。
    猜你喜欢
    • 1970-01-01
    • 2016-03-09
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2019-04-29
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多