深度学习中batch_size epoch,batch,iteration

   刚刚接触深度学习的知识是对里面的batch_size,batch和epoch等等一些定义比较懵,所以自己在这里说一下我对它们的理解。

batch_size:可以翻译为批处理大小(这也是我们起初对它的理解,但是在实验中不懂的怎么使用和设置)。

            这里的batch_size代表将整个数据集划分成多个块,我们每次训练的样本数目。batch_size的适当增加可以增加内存的利用率。它的正确选择可以在内存容量和内存效率之间寻找到一定平衡。

batch:是当全数据集较大时,采取的一种策略,可以将全数据集分成几个batch进行训练。一次batch的样本训练为一个epoch。给定batch_size,iteration就是完成这个batch的样本训练需要iteration的次数(size(batch)/size(batch_size))。

整个数据集,整个数据集确定的方向可以更好的代表总体,能够准确的朝向极值所在的方向。对以小的数据集可以将整个数据集作为一次训练的样本数目。但是当数据比较大时,就需要分成几个batch来做。

epoch:可以翻译为时期,但是这里的epoch代表的是迭代次数。但是和iteration(迭代)不同的是,一次epoch是整个训练集的全部样本训练一次,一次epoch等于整个训练集正向传递和反向传递;而iteration是每个batch_size的样本训练集训练一次,这里每次iteration包含一个正向传递和一个反向传递。

举例:全数据样本为2000,batch大小为500,那么完成batch的样本训练epoch需要4次,给定batch_size为25,那么一个完成一个batch的样本训练需要20次iteration。


你可能感兴趣的:(深度学习)