深度学习中的batch_size、epoch和iterations
在进行模型训练的时候经常会遇到这三个参数:batch_size、epoch和iterations,那么它们之间的关系是怎样的呢?
首先,产生的原因主要是:
1. 原本的大批量梯度下降训练时,每次要处理完所有数据才更新梯度和损失值,需要的时间太长,计算开销大。
2. 但是呢,每次计算一个数据,就更新一次损失值和梯度值,虽然速度快,但是不容易收敛,而且不一定找到全局最优解。
于是,就出现了折中方法 —— 小批量梯度下降策略,所以就有了这些概念。
batch_size:指的是每批次的大小,即每个iteration送入神经网络的样本量,也就是每个batch包含的样本量。
iterations:指的是迭代次数,也就是每处理完所有数据一次,需要多少次迭代,每一个batch_size的数据,完成一次训练过程,叫做完成了一次迭代(iteration)。
epoch:一个epoch指的是,将所有数据送入神经网络,完成一次整体的前向计算和反向传播的过程。
通俗一点说:如果我们有10000个样本,分为4个batch,
那么batch_size值就是:10000/4=2500;
iterations值就是:4;
全体数据被计算一次,就完成了一次epoch。
##
参考:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步