Skip to content

Commit b4d619d

Browse files
authored
fix fp16 nan or acc drop down when using dynamic mode (#126)
1 parent a026c02 commit b4d619d

File tree

1 file changed

+2
-13
lines changed

1 file changed

+2
-13
lines changed

plsc/core/grad_clip.py

+2-13
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,7 @@ def __call__(self, params):
8888
if param.grad.dtype == paddle.float16:
8989
clip_coef = clip_coef_fp32.astype("float16")
9090

91-
# inplace calculate
92-
paddle.fluid.framework._dygraph_tracer().trace_op(
93-
type="elementwise_mul",
94-
inputs={'X': param.grad,
95-
'Y': clip_coef},
96-
outputs={'Out': param.grad},
97-
attrs={'axis': -1})
91+
param.grad.detach().scale_(clip_coef)
9892

9993

10094
@paddle.no_grad()
@@ -141,10 +135,5 @@ def clip_grad_norm_(parameters,
141135
clip_coef = max_norm / (total_norm + 1e-6)
142136
clip_coef_clamped = paddle.clip(clip_coef, max=1.0)
143137
for p in parameters:
144-
paddle.fluid.framework._dygraph_tracer().trace_op(
145-
type="elementwise_mul",
146-
inputs={'X': p.grad,
147-
'Y': clip_coef_clamped},
148-
outputs={'Out': p.grad},
149-
attrs={'axis': -1})
138+
p.grad.detach().scale_(clip_coef_clamped)
150139
return total_norm

0 commit comments

Comments
 (0)