nn.init初始化函数参数: pytorch文档
1. 均匀分布
nn.init.uniform_(tensor, a=0, b=1)
- a,b: 均匀分布的下界和上界
下面举一个初始化时的例子
class MyModel(nn.Module):
def __init__(self):
super(MyModel, self).__init__()
self.l1 = nn.Linear(3, 3)
self._init_parameters() # 对模型中的参数初始化
def _init_parameters(self):
for p in self.parameters():
nn.init.uniform_(p, a=0, b=1)
def forward(self, x):
return x
model = MyModel()
for param in model.parameters():
print(param)
'''
Parameter containing:
tensor([[0.0213, 0.8163, 0.0422],
[0.9847, 0.6568, 0.3481],
[0.1649, 0.3403, 0.9780]], requires_grad=True)
Parameter containing:
tensor([0.7987, 0.0152, 0.0960], requires_grad=True)
'''
可以看到初始化的结果在0-1之间,当初始化的数据足够多时服从均匀分布,之后的初始化方法与之相同,就不在举例了
持续更新中…