# 函数变换获得梯度计算函数时报错AttributeError: module 'mindspore' has no attribute 'value\_and\_grad'

**1. 系统环境**

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

软件环境: MindSpore 版本: 1.10.0

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

Python 版本: 3.8

操作系统平台: linux

**2. 报错信息**

2.1 问题描述

快速入门教程中的“模型训练”，通过函数变换获得梯度计算函数时,出现报错。

2.2 报错信息

```
AttributeError: module 'mindspore' has no attribute 'value_and_grad'
```

2.3 脚本信息

```
# Get gradient function
grad_fn = mindspore.value_and_grad(forward_fn, None, optimizer.parameters, has_aux=True)
```

**3. 根因分析**

查看1.10的api[mindspore.ops.value\_and\_grad](https://www.mindspore.cn/docs/zh-CN/r1.10/api_python/ops/mindspore.ops.value_and_grad.html?highlight=value_and_grad)

```
value_and_grad是在ops下面的，所以
mindspore.value_and_grad会报错，应该修改为mindspore.ops.value_and_grad
```

**4. 解决方案**

```
grad_fn = mindspore.ops.value_and_grad(forward_fn, None, optimizer.parameters, has_aux=True)
```

