1.系统环境
硬件环境(Ascend/GPU/CPU): GPU
MindSpore版本: mindspore=2.0
执行模式(PyNative/ Graph):不限
Python版本:3.7
操作系统平台:Linux
2. 问题描述
ms.common.initializer.Constant(0.0)(m.bias)
不起初始化改变数值的作用
def init_normal(m):
if type(m) == nn.Dense:
m.weight.set_data(initializer(Normal(sigma=0.01,mean=0,m.weight.shape,m.weight.dtype)))
print(m.bias.value())
ms.common.initialzer.Constant(0.0)(m.bias)
print(m.bias.value())
print('ok')
net.apply(init_normal)
net[0].weight.data[0],net[0].bias.data[0]
3. 解决方案
首先调用内置的初始化器,将所有权重参数初始化为标准差为0.01的高斯随机变量,且将偏置参数设置为0。
form mindspore.common.initializer import initializer,Normal,Constant
def init_normal(m):
if type(m) == nn.Dense:
m.weight.set_data(initializer(Normal(sigma=0.01,mean=0,m.weight.shape,m.weight.dtype)))
m.bias.set_data(initializer(Constant(0.0),m.bias.shape,m.bias.dtype))
net.apply(init_normal)
net[0].weight.data[0],net[0].bias.data[0]