在上一节中了解了为什么要进行权值初始化以及如何选择权值初始化方法,在这一节来了解一下pytroch中十种权值初始化方法
一、权值初始化流程
1、先设定什么层用什么初始化方法,初始化方法在 torch.nn.init 中给出;
2、实例化一个模型之后,执行该函数,即可完成初始化。
示例:
def initialize_weights(self):
for m in self.modules:
# 对卷积层进行初始化
if isinstance(m, nn.Conv2d):
torch.nn.init.xavier_normal_(m.weight.data)
if m.bias is not None:
m.bias.data.zero_()
# 对BN层进行初始化
elif isinstance(m<