假设有一组数据集由5000个样本构成,训练集3000个,测试集2000个,设置batch_size=10意味着每一步训练10个样本,因此每一个epoch会训练多少步,取决于样本个数及设置的batch_size,每一步返回的是这十个的平均损失,样本遍历完一次为一轮,也即一个epoch。每一轮训练的步数计算方法为:
3000个样本,每10个为一个batch,则每一个epoch有3000➗10=300步,当batch_size不能被样本整除时,最后一个batch将不等于设置的batch_size,可以在定义dataloader时将drop_last参数设置为True来解决。
每一个epoch是先在训练集训练参数,然后在测试集上测试准确率。因此每一个epoch训练结束会把整个数据集全部遍历一遍。