【发布时间】:2019-01-04 02:01:47
【问题描述】:
我的生成器总是从我的数据集中随机生成两张图像,然后我使用这两个样本计算损失。假设我设置了steps_per_epoch=40 和epochs=5,如果我设置steps_per_epoch=5 和epochs=40 有什么区别(我使用Adam 作为我的优化器)?
【问题讨论】:
标签: machine-learning keras epoch unsupervised-learning adam
我的生成器总是从我的数据集中随机生成两张图像,然后我使用这两个样本计算损失。假设我设置了steps_per_epoch=40 和epochs=5,如果我设置steps_per_epoch=5 和epochs=40 有什么区别(我使用Adam 作为我的优化器)?
【问题讨论】:
标签: machine-learning keras epoch unsupervised-learning adam
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 上的答案,以获得更完整的批量大小定义。
【讨论】: