PyTorch中的自定义权重初始化
问题描述
在PyTorch
中实现custom weight initialization
方法的正确方式是什么?
我相信我不能直接将任何方法添加到"torch.nn.init`,但希望使用我自己的专有方法初始化模型的权重。
解决方案
您可以根据每一层定义初始化权重的方法:
def weights_init(m):
classname = m.__class__.__name__
if classname.find('Conv2d') != -1:
m.weight.data.normal_(0.0, 0.02)
elif classname.find('BatchNorm') != -1:
m.weight.data.normal_(1.0, 0.02)
m.bias.data.fill_(0)
然后将其应用于您的网络:
model = create_your_model()
model.apply(weights_init)
相关文章