Skip to content

Commit

Permalink
[Dy2St] Remove some dy2st limitations (PaddlePaddle#6813)
Browse files Browse the repository at this point in the history
  • Loading branch information
SigureMo authored Aug 7, 2024
1 parent ab670be commit cd42a64
Showing 1 changed file with 0 additions and 43 deletions.
43 changes: 0 additions & 43 deletions docs/guides/jit/limitations_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -595,46 +595,3 @@ out = func(x)
```

因此若在[调试时](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/jit/debugging_cn.html#ertiaoshifangfa)发现某个变量因为动转静转写为 Tensor 而导致了错误,可以通过修改 isinstance 语句来解决。

### 4. super 的使用

在 Python 3.x 中,super 的使用有两种:

+ `super(Class, self).__init__()`
+ `super().__init__()`

后者实质是用局部变量 `__class__` 作为 super 的第一个参数。目前飞桨动转静支持前者,暂不支持在 @to_static 装饰的函数中使用`super().__init__()`,但`__init__()`中的使用不受影响。

如下是一个典型的使用样例:

```python
import paddle

class BaseLayer(paddle.nn.Layer):
def forward(self):
do_somthing()

class MyLayer(BaseLayer):
def forward(self):
super().forward() # <--- 暂不支持 super().xxx
```

**规范性写法**:推荐使用 `super(Class, self).__init__()` 语法形式,后续会支持新的 super 语法。
```python
import paddle

class BaseLayer(paddle.nn.Layer):
def forward(self):
do_somthing()

class MyLayer(BaseLayer):
def forward(self):
super(MyLayer, self).forward() # <--- 推荐使用 super(xx, self).xxx 形式
```

### 5. 暂未支持 PyLayer

目前动转静暂不支持动态图下[自定义 PyLayer](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/autograd/PyLayer_cn.html#pylayer) 的语法,将在近期支持,敬请期待。推荐使用[自定算子的方式](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/custom_op/new_cpp_op_cn.html)代替,动转静已完备支持。
### 6. 暂未支持 TensorHook

目前动转静暂不支持动态图下对 Tensor 调用 register_hook ,将在近期支持,敬请期待。

0 comments on commit cd42a64

Please sign in to comment.