一个epoch表示“大层面上的一次迭代”,也就是指,(假定是训练阶段)处理完所有训练图片,叫一个epoch。但是每次训练图片可能特别多,内存/显存塞不下,那么每个epoch内,将图片分成一小堆一小堆的,每一小堆图片数量相等,每一小堆就是一个batch(批次)。因而,一个epoch内,就要处理多个batch。batch_size表示的是,每个batch内有多少张图片。
而一个epoch,一共需要分成多少个batch呢?这个batch的数目,就叫做train_iter(训练阶段)或者test_iter(测试阶段)
-
Epoch:表示整个数据集的迭代(所有内容都包含在训练模型中)。
-
Batch:是指当我们不能一次将整个数据集放到神经网络中时,我们将数据集分割成几批较小的数据集。
-
迭代:是运行 epoch 所需的批数。假设有 10,000 个图像作为数据,批处理的大小(batch_size)为 200。然后一个 epoch 将包含 50 个迭代(10,000 除以 200)。
总结:
train_iter * batch_size = 一个epoch要处理的所有图片(可能因为整除的原因,不严格相等,让左边略大即可。训练阶段)
或者:
train_iter * batch_size = 一个epoch要处理的所有图片(测试阶段。)
关于深度学习中的batch_size 详细参考下列链:
1、博客园