版权声明:未经允许禁止转载 https://blog.csdn.net/weixin_43211480/article/details/88930503
深度学习框架中的epochs、batch、batch_size、iteration
一、epochs
当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个 epoch。
简言之,epochs指的就是训练过程中数据将被“轮”用多少次
为什么要使用多于一个 epoch?
如果只有一轮,即epochs=1,那就是说在神经网络中传递一次完整的数据,此时权重只更新一次,显然很难正确拟合,所以我们需要将完整的数据集在同样的神经网络中传递多次,仅仅更新权重一次或者说使用一个 epoch 是不够的。
二、batch
当一个 epoch 对于计算机而言太庞大的时候,不能将数据一次性通过神经网络,这就需要将数据集分成几个 小块,即几个batch
三、batch_size
一个batch中的样本数量。
注意:batch_size 不是 batch的个数,而是每一个batch中的样本个数
四、iteration
迭代次数,是 batch 需要完成一个 epoch 的次数。
每一次迭代都是一次权重更新,每一次权重更新需要batch_size个数据进行Forward运算得到损失函数,再BP算法更新参数。
1个iteration等于使用batch_size个样本训练一次。
记住:在一个 epoch 中,batch 数和迭代次数是相等的。
例子总结
一个2000个数据的样本
可以分成4个batch,每一个batch的大小为500(batch_size=500)
这4个batch依次送入神经网络训练,即需要经过4次iteration(迭代)才是跑完了整个训练集数据
这4次迭代称为一个epoch