Paddle/python/paddle/fluid/tests/unittests/op_test.py
Line 518 in 7330cd6
| | abs_a[abs_a<1e-3] =1 |
OP单测中grad的检测函数 _assert_is_close
中,对判断相对误差的分母 abs_a
做了小于 1e-3
时置为1的处理。
由于op单测默认在op后添加mean loss,所以单测中output_grad tensor的梯度数值均为 1/output_size
, output_size
是OP output的元素个数,当 output_size
较大时(比如>1000), output_grad
的梯度数值会很小,计算出 input_grad
的数值也会很小,就会走到上述 abs_a<1e-3
的逻辑,分母被置为1,这时 input_grad
即使有较大diff也无法检测出来
1条答案
按热度按时间1sbrub3j1#
我理解此处是否应该修改为
abs_a[abs_a < 1e-3] = 1e-3