Created by: chenwhql
该PR修复三个Print Transformer的问题:
- 动转静
print
替换为fluid.layers.Print
之后,如果是gast.Expr而不是gast.Assign,print将会成为叶子节点,这导致的在exe.run(use_prune=True)时,Print节点会被剪掉
- 因此改为,将
print(x)
要处理为x = fluid.layers.Print(x)
- 对于py3:两种情况
- Expr(Call) - > Assign()
- Assign() - > Assign()
- 对于py2:
- Print() -> Assign()
- 对于py3:两种情况
- 改为
layers.Print
之后,一些参数不能仅使用默认的,否则和原动态图写法语义存在差别
-
print_phase
应该只包含前向:在动态图的语义中,print(x)
是只打印当前变量的,所以转换之后,也应该保持语义相同,带参数print_phase='forward'
-
summarize
应该改为-1,打印全部tensor数据
- 一些报错信息应该去掉,换成WARNING,无法转换的并不应该报错
related PR:https://github.com/PaddlePaddle/Paddle/pull/24068