# 静态式下报错TypeError: pynative模式不支持重新计算

**1.系统环境**

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

MindSpore版本: mindspore=2.5.0

执行模式（PyNative/ Graph）: PyNative

Python版本: Python=3.10

操作系统平台: Ubuntu22.04

**2.问题描述**

在MindSpore静态图模式下使用nn.Cell.recompute方法报错

脚本信息

```
import mindspore
from mindspore import context
context.set_context(mode=context.GRAPH_MODE)
```

**3.报错信息**

```
/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.
```

**4.根因分析**

这个是使用了nn.Cell.recompute方法来设置重计算，这个方法确实目前只支持静态图模式。

**5.解决方案**

将脚本的运行模式切换成静态图。

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

