步骤和时期的设置如何影响Keras的训练结果



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

epochs参数(也称为迭代(指的是整个训练数据的完整通过次数。steps_per_epoch参数指的是在一个历元期间生成的批数。因此我们有steps_per_epoch = n_samples / batch_size

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

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

最新更新