在未调用网络前设置weight参数
根据网络输入数据的维度设置一个初始Weght Tensor
eg:torch.from_numpy(np.array([1,1])),后续将numpy格式数据转为Tensor。
torch.nn.init (使weight满足设定的不同分布)
ones_
torch.nn.init.ones_(weight),值全部设置为1
zeros_
torch.nn.init.zeros_(weight),值全部设置为0
normal_
weight(Tensor).normal_(mean,std)/torch.nn.init.normal_(tensor,mean,std)
uniform_
weight(Tensor).uniform_(a,b)/torch.nn.init.uniform_(tensor,a,b)
constant_
torch.nn.init.constant_(weight,c),值全部设置为设定的常数c
sparse_
torch.nn.init.sparse_(tensor, sparsity, std=0.01)
Xavier_uniform_ & Xavier_normal_
kaiming_uniform_&kaiming_normal_
对网络结构各网络层的weight初始化
m.weight.data
得到的是一个Tensor张量(向量),不可训练的类型
eg:利用nn.init.constant_(m.weight.data,value=10) 对该网络层的权重进行初始化,但是得到的初始化值不参与网络的学习(迭代)
m.weight
得到的是一个parameter的变量,可以训练(计算梯度)