首先要明白,误差回传与否,与 requires_grad 的值没有关系。
取决于 loss.backward( ) 。
再来看误差回传过程中规定是,parameters的梯度计算关闭。
param.requires_grad = False
我们要知道,param 包括的无非是 权重 和 偏置值。
而权重和偏置值的偏导值是多少并不影响误差反向传播,误差反向传播主干部分计算的是每一层激活前神经元的偏导值。
计算激活前神经元偏导值DZ并不需要 DW 和 DB 的参与(一般涉及到DA 和 W)。
综上:
param.requires_grad = False 不影响误差反向传播正常进行,但是权重和偏置值不更新了。