@@ -38,29 +38,35 @@ void CheckProgram(const ProgramDesc &program) {
38
38
visit[role_id] = true ;
39
39
switch (role_id) {
40
40
case _INT (OpRole::kForward ):
41
- PADDLE_ENFORCE (
42
- visit.find (_INT (OpRole::kBackward )) == visit.end (),
43
- " Cannot add forward operator before backward operator." );
41
+ if (visit.find (_INT (OpRole::kBackward )) != visit.end ()) {
42
+ LOG (ERROR)
43
+ << " Cannot add backward operator before forward operator %s."
44
+ << op->Type ();
45
+ }
44
46
break ;
45
47
case _INT (OpRole::kBackward ):
46
48
case _INT (OpRole::kBackward ) | _INT (OpRole::kLoss ):
47
49
PADDLE_ENFORCE (
48
50
visit.find (_INT (OpRole::kOptimize )) == visit.end (),
49
- " Cannot add backward operator before optimize operator." );
51
+ " Cannot add backward operator %s before optimize operator." ,
52
+ op->Type ());
50
53
break ;
51
54
case _INT (OpRole::kForward ) | _INT (OpRole::kLoss ):
52
55
PADDLE_ENFORCE (visit.find (_INT (OpRole::kBackward ) |
53
56
_INT (OpRole::kLoss )) == visit.end (),
54
57
" Cannot add backward|loss operator before "
55
- " forward|loss operator." );
58
+ " forward|loss operator %s." ,
59
+ op->Type ());
56
60
PADDLE_ENFORCE (
57
61
visit.find (_INT (OpRole::kOptimize )) == visit.end (),
58
- " Cannot add backward operator before optimize operator." );
62
+ " Cannot add forward|loss operator %s after optimize operator." ,
63
+ op->Type ());
59
64
break ;
60
65
case _INT (OpRole::kOptimize ):
61
66
case _INT (OpRole::kOptimize ) | _INT (OpRole::kLRSched ):
62
67
PADDLE_ENFORCE (visit.find (_INT (OpRole::kBackward )) != visit.end (),
63
- " Optimize operators must follow backward operator." );
68
+ " Optimize operators %s must follow backward operator." ,
69
+ op->Type ());
64
70
break ;
65
71
case _INT (OpRole::kLRSched ):
66
72
case _INT (OpRole::kDist ):
0 commit comments