weight initilzation

1. pytorch提供接口

method 1  torch.nn.init里面有很多初始化分布

1 import torch.nn.init as init
2 
3 self.conv1 = nn.Conv2d(3, 20, 5, stride=1, bias=True)
4 init.xavier_uniform(self.conv1.weight, gain=np.sqrt(2.0))
5 init.constant(self.conv1.bias, 0.1)

method 2 http://pytorch.org/docs/master/nn.html

1 def init_weights(m):
2     print(m)
3     if isinstance(m, nn.Linear):
4         m.weight.data.fill_(1.0)
5         print(m.weight)
6 
7 net = nn.Sequential(nn.Linear(2, 2), nn.Linear(2, 2))
8 net.apply(init_weights)

conv.py中有定义函数

1 def reset_parameters(self):
2         n = self.in_channels
3         for k in self.kernel_size:
4             n *= k
5         stdv = 1. / math.sqrt(n)
6         self.weight.data.uniform_(-stdv, stdv)
7         if self.bias is not None:
8             self.bias.data.uniform_(-stdv, stdv)        

 

转载于:https://www.cnblogs.com/Joyce-song94/p/7325406.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值