"sample","batch"和"epoch"都是啥意思??

  • Sample:样本,数据集中的一条数据。例如图片数据集中的一张图片,语音数据中的一段音频。
  • Batch:中文为批,一个batch由若干条数据构成。batch是进行网络优化的基本单位,网络参数的每一轮优化需要使用一个batch。batch中的样本是被并行处理的。与单个样本相比,一个batch的数据能更好的模拟数据集的分布,batch越大则对输入数据分布模拟的越好,反应在网络训练上,则体现为能让网络训练的方向“更加正确”。但另一方面,一个batch也只能让网络的参数更新一次,因此网络参数的迭代会较慢。在测试网络的时候,应该在条件的允许的范围内尽量使用更大的batch,这样计算效率会更高。
  • Epoch,epoch可译为“轮次”。如果说每个batch对应网络的一次更新的话,一个epoch对应的就是网络的一轮更新。每一轮更新中网络更新的次数可以随意,但通常会设置为遍历一遍数据集。因此一个epoch的含义是模型完整的看了一遍数据集。 设置epoch的主要作用是把模型的训练的整个训练过程分为若干个段,这样我们可以更好的观察和调整模型的训练。当指定了验证集时,每个epoch执行完后都会运行一次验证集以确定模型的性能。另外,我们可以使用回调函数在每个epoch的训练前后执行一些操作,如调整学习率,打印目前模型的一些信息等。
原文地址:https://www.cnblogs.com/tangbaofang/p/8416135.html