# 使用mindspore.numpy.sqrt 计算结果不正确

**1. 系统环境**

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

软件环境: MindSpore 版本: 2.0.0

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

Python 版本: 3.7.6

操作系统平台: linux

**2. 报错信息**

2.1 问题描述

mindspore.numpy.sqrt 在图模式下 int输入结果不对，在pynative模式报错。两种模式结果不一致。全部报错，或者全部为 2.236。

2.2 脚本信息

```
import mindspore as ms
import mindspore.nn as nn

class TestModel(nn.Cell):
    def construct(self, x):
        x = ms.numpy.sqrt(x.shape[-1])
        return x

inputs = ms.Tensor([1, 2, 3, 4, 5])
model = TestModel()

ms.set_context(mode=0)
print(model(inputs))

ms.set_context(mode=1)
print(model(inputs))
```

**3. 根因分析**

整形输入目前算子不支持，所以需要更改输入类型。又在construct里面的x.shape\[-1\]会将数据转为整形，所以我们需要使用tensor里面的value方法将数据提出来并且保持数据类型。

**4. 解决方案**

修改对应的数据类型即可输出正确的结果。

```
import mindspore as ms
import mindspore.nn as nn

class TestModel(nn.Cell):
    def construct(self, x):
        x = ms.numpy.sqrt(x[-1].value())
        return x

inputs = ms.Tensor([1, 2, 3, 4, 5], ms.float32)
model = TestModel()

ms.set_context(mode=0)
print(model(inputs))

ms.set_context(mode=1)
print(model(inputs))
```

