nn.init

nn.init初始化函数参数: pytorch文档

1. 均匀分布

nn.init.uniform_(tensor, a=0, b=1)

  • a,b: 均匀分布的下界和上界

下面举一个初始化时的例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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之间,当初始化的数据足够多时服从均匀分布,之后的初始化方法与之相同,就不在举例了

持续更新中…

Error: Not Found