Pytorch:AG接口,BBIN接口,MG接口,PT接口对接平台权重初始化
在TensorFlow中,AG接口,BBIN接口,MG接口,PT接口对接平台Q2222168869权重的初始化主要是在声明张量的时候进行的。 而PyTorch则提供了另一种方法:首先应该声明张量,然后修改张量的权重。通过调用torch.nn.init包中的多种方法可以将权重初始化为直接访问张量的属性。
1、不初始化的效果 w = torch.Tensor(3,4) 可以看到这时候的初始化的数值都是随机的,而且特别大,这对网络的训练必定不好,最后导致精度提不上,甚至损失无法收敛。 2、初始化的效果 演示站:http://fanshubbs.com/thread-424-1-1.html PyTorch提供了多种参数初始化函数: torch.nn.init.constant(tensor,val) 让我们试试效果: w = torch.Tensor(3,4) 3、初始化神经网络的参数 def init(self,block,layers,num_classes=1000): *** #定义自己的网络层 *** for m in self.modules(): if isinstance(m,nn.Conv2d): n = m.kernel_size[0] * m.kernel_size[1] * m.out_channels m.weight.data.normal_(0,math.sqrt(2. / n)) elif isinstance(m,nn.BatchNorm2d): m.weight.data.fill_(1) m.bias.data.zero_() *** #定义后续的函数 也可以采取另一种方式: def weights_init(m): 在模型声明时,调用初始化函数,初始化神经网络参数: model = Net(*****)model.apply(weights_init) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |