训练过程中,一个Batch的图片数据实际上是如何参与训练的?

Answer

假设一个Batch有32张图片,实际训练时,这32张图片也是一张张的实际参与到训练中的,每一张图片在进行训练后,会在模型的旧参数下计算梯度更新值i,之后模型并不会立刻更新参数值,而是会等待这个Batch中的其他图片进入模型以计算梯度更新值。待Batch中的图片全部一张张训练完后,求
∑ i = 0 n 梯 度 更 新 值 i \displaystyle\sum_{i=0}^n 梯度更新值i i=0ni
之后再对模型进行一次参数更新。以上过程可以用公式表示如下:
T o t a l = 旧 参 数 下 计 算 更 新 值   1   + 旧 参 数 下 计 算 更 新 值   2   + … … + 旧 参 数 下 更 新 值 32 Total =旧参数下计算更新值~1~+旧参数下计算更新值~2~+……+旧参数下更新值32 Total= 1 + 2 ++32

新 参 数 = 旧 参 数 + T o t a l 新参数 = 旧参数+Total =+Total
显然,Batch越大时,样本分布越接近数据集总体分布,每次更新后的参数更可能朝着最优值的方向前进。

你可能感兴趣的:(深度学习,深度学习,神经网络,pytorch,机器学习)