论初始化的重要性
初始化是相当重要的,一定不能乱写,
因为首先初始化由于学习率比较小的原因,导致这个层的weight改变的会很慢,
其次,初始化如果不对,很可能不只是下降慢,可能是全盘皆输
17:40:18
从上述公式可以看出,由于学习率很小,所以w基本不变,再加上w内部如果都设为1,则w更新之后也基本一样,如果是这样的话,则之后的节点大小也一样,这就导致下一个节点的w增长量一样,,会出现很多问题
所以一般是这样:
1
self.conv44w = nn.Conv2d(2048, 35, kernel_size=1, stride=1, padding=0,bias=False)
init.kaiming_normal(self.conv44w.weight.data, a=0, mode='fan_in')
self.bn44w = nn.BatchNorm2d(35)
init.normal(self.bn44w.weight.data, 1.0, 0.02)
init.constant(self.bn44w.bias.data, 0.0)
2 state_dict. strict=False