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进行初始化```