# MindSpore实现Swin Transformer时遇到ms.common.initializer.Constant\(0.0\)\(m.bias\)不起初始化改变数值的作用

**1. 系统环境**

硬件环境\(Ascend/GPU/CPU\): GPU

软件环境: MindSpore 版本: 2.0

执行模式（静态图/动态图）： 不限

Python 版本: 3.7

操作系统平台: linux

**2. 报错信息**

2.1 问题描述

ms.common.initializer.Constant\(0.0\)\(m.bias\)不起初始化改变数值的作用。

2.2 脚本信息

```
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]
```

