torch.nn.init
(一)随机
torch.nn.init.uniform(tensor, a=0, b=1)
从均匀分布U(a, b)中生成值
torch.nn.init.normal(tensor, mean=0, std=1)
从给定均值和标准差的正态分布N(mean, std)中生成值
(二)常数
torch.nn.init.constant(tensor, val)
用val填充
(三)
torch.nn.init.kaiming_normal(tensor, a=0, mode='fan_in')
正态分布填充,均值为0,标准差为sqrt(2/((1 + a^2) * fan_in))
for m in self.modules():
if isinstance(m, nn.Conv2d):
nn.init.kaiming_normal_(m.weight, mode='fanout', nonlinearity='relu')
if m.bias is not None:
nn.init.constant_(m.bias, 0)
elif isinstance(m, nn.Linear):
nn.init.normal_(m.weights, 0, 0.01)
nn.init.constant_(m.bias, 0)
src:pytorch手册节选
https://pytorch-cn.readthedocs.io/zh/latest/package_references/nn_init/#torchnninit