反向传播的时候, 每一 层的继续往前传的梯度方差为1(因为每层会有两个梯度的计算, 一个用来更新当前层的权重, 一个继续传播, 用于前面层的梯度的计算.)
2.2再来个源码
方差的计算需要两个值:gain...with torch.no_grad():
return tensor.normal_(0, std)
下面的代码根据网络设计时卷积权重的形状和前向传播还是反向传播, 进行fan...有
形状,
表示的输出通道的数量.下标
表示第几层.
,
表示激活函数ReLU, 表示前一层的输出经过激活函数变成下一层的输入.
表示网络下一层的输入通道数等于上一层的输出通道数....则该层的权重
, 偏置初始化为0.
个参数都是从这个分布里面采样....与正常的反向传播推导不一样, 这里假设
表示
个通道,每个通道
大小,
,与正向传播的时候一样,
有
个通道,
有
个通道.
的大小为
,所以
的形状为
.