torch.init.normal_和torch.init.constant_的用法

43 篇文章 6 订阅
32 篇文章 4 订阅
这篇博客介绍了如何使用PyTorch的`torch.nn.init.normal_`和`torch.nn.init.constant_`来初始化神经网络的权重和偏置。`normal_`用于设置权重为正态分布,`constant_`则将偏置初始化为常数。通过示例代码展示了这两种初始化方法的具体用法及其对输出的影响。
摘要由CSDN通过智能技术生成

torch.init.normal_:给tensor初始化,一般是给网络中参数weight初始化,初始化参数值符合正态分布。
torch.init.normal_(tensor,mean=,std=) ,mean:均值,std:正态分布的标准差

代码示例:

import torch
import torch.nn as nn
l=nn.Conv2d(2,2,kernel_size=1)
a=l.weight
print("a:",a)
b=nn.init.normal_(l.weight,mean=0,std=0.01)
print("b:",b)

输出:

a: Parameter containing:
tensor([[[[-0.1551]],
         [[-0.6292]]],
        [[[ 0.5094]],
         [[ 0.3613]]]], requires_grad=True)
b: Parameter containing:
tensor([[[[-0.0013]],
         [[-0.0062]]],
        [[[ 0.0093]],
         [[ 0.0019]]]], requires_grad=True)

torch.init.constant_:初始化参数使其为常值,即每个参数值都相同。一般是给网络中bias进行初始化。
torch.nn.init.constant_(tensor,val),

val:常量数值

import torch
import torch.nn as nn
l=nn.Conv2d(2,2,kernel_size=1)
a=l.bias
print("a:",a)
b=nn.init.constant_(l.bias,val=0)
print("b:",b)

输出:

a: Parameter containing:
tensor([ 0.1539, -0.5360], requires_grad=True)
b: Parameter containing:
tensor([0., 0.], requires_grad=True)







 init.normal_(self.proj_parse[0].weight, std=0.01)  #给tensor初始化,一般是给网络中参数weight初始化,初始化参数值符合正态分布
        init.normal_(self.proj_parse[1].weight, std=0.01)
        init.constant_(self.proj_parse[0].bias, 0)
        init.constant_(self.proj_parse[1].bias, 0) #初始化参数使其为常值,即每个参数值都相同。一般是给网络中bias进行初始化```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zqx951102

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值