系统环境
硬件环境(Ascend/GPU/CPU): GPU
MindSpore版本: mindspore=2.5.0
执行模式(PyNative/ Graph): PyNative
Python版本: Python=3.10
操作系统平台: Ubuntu22.04
报错信息
问题描述
在MindSpore静态图模式下使用nn.Cell.recompute方法报错
脚本信息
import mindspore
from mindspore import context
context.set_context(mode=context.GRAPH_MODE)
报错信息
/site-packages/mindspore/nn/cell.py in recompute(self, mode, output_recompute)
1306 “”"
1307 if context.get_context(“mode”) == context.PYNATIVE_MODE:
-> 1308 raise TypeError(“Recompute is not supported in pynative mode currently.”)
1309 Validator.check_bool(mode)
1310 Validator.check_bool(output_recompute)
TypeError: Recompute is not supported in pynative mode currently.
根因分析
这个是使用了nn.Cell.recompute方法来设置重计算,这个方法确实目前只支持静态图模式。
解决方案
将脚本的运行模式切换成静态图。
import mindspore
from mindspore import context
context.set_context(mode=context.GRAPH_MODE)
如果动态图模式下使用的话,可以尝试用mindspore.recompute,mindspore.recompute文档:
https://www.mindspore.cn/docs/zh-CN/r2.6.0rc1/api_python/mindspore/mindspore.recompute.html?highlight=recompute#mindspore.recompute