There was an error while loading. Please reload this page.
概要: 第1节,背景 第2节,PR-CI-Py3流水线单测失败的复现方法 第3节,PR-CI-Windows-OPENBLAS流水线单测失败的复现方法 第4节,PR-CI-Coverage-Eager-Test流水线单测失败的复现方法 第5节,跳过失败单测方法
概要:
为了监控新动态图模式下单测的正确性,防止开发的PR导致新动态图功能错误,需要让CI流水线执行在新动态图eager模式下。
目前,已将PR-CI-Py3,PR-CI-Windows-OPENBLAS流水线切换至新动态图eager模式下执行(其他流水线暂时仍然执行在老动态图模式下)。
在PR-CI-Py3流水线中,已设置export FLAGS_enable_eager_mode=1,启用新动态图模式进行编译、执行单测。
export FLAGS_enable_eager_mode=1
在PR-CI-Windows-OPENBLAS流水线中,已设置set FLAGS_enable_eager_mode=1,启用新动态图模式进行编译、执行单测。
set FLAGS_enable_eager_mode=1
由于PR-CI-Py3流水线已执行在新动态图模式下,在本地复现PR-CI-Py3流水线的单测问题时,需要开启FLAGS_enable_eager_mode=1环境变量来执行单测,让本地单测也执行在新动态图模式下:
FLAGS_enable_eager_mode=1
FLAGS_enable_eager_mode=1 python test_xxx.py
复现问题后需要修复单测,直至新动态图模式下该单测通过。
若 PR-CI-Windows-OPENBLAS 流水线执行失败,在本地复现单测问题时,需要使用set FLAGS_enable_eager_mode=1 进配置环境变量,确保单测跑在新动态图模式下。
若 PR-CI-Coverage-Eager-Test 流水线执行失败,在本地复现单测问题时,需要将 python/paddle/fluid/framework.py 内的 _in_eager_mode_ = (os.environ.get('FLAGS_enable_eager_mode') == '1') 改为 _in_eager_mode_ = True 进行全局切换,确保单测跑在新动态图模式下。
_in_eager_mode_ = (os.environ.get('FLAGS_enable_eager_mode') == '1')
_in_eager_mode_ = True
如果有特殊原因,需要跳过新动态图模式下对该单测的检查,可以尝试让该单测只执行在老动态图模式下。方法如下:
_enable_legacy_dygraph
from paddle.fluid.framework import _enable_legacy_dygraph _enable_legacy_dygraph()
注: