1 系统环境
硬件环境(Ascend/GPU/CPU): CPU
MindSpore版本: mindspore=1.10.0
执行模式(PyNative/ Graph):不限
Python版本: Python=3.8.8
操作系统平台: 不限
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
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)
运行不报错