From 9bf4c6769425fd9b7eceafb7cb24dbdd31e68310 Mon Sep 17 00:00:00 2001 From: Weilong Wu Date: Wed, 31 Aug 2022 17:09:17 +0800 Subject: [PATCH] [Eager, Performance optimization] use Python-C interface directly (#45598) --- python/paddle/nn/functional/loss.py | 7 ++----- python/paddle/tensor/math.py | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/python/paddle/nn/functional/loss.py b/python/paddle/nn/functional/loss.py index bc1e02fcb58..c0742bdbf40 100755 --- a/python/paddle/nn/functional/loss.py +++ b/python/paddle/nn/functional/loss.py @@ -1254,11 +1254,8 @@ def l1_loss(input, label, reduction='mean', name=None): "received %s, which is not allowed." % reduction) if in_dygraph_mode(): - unreduced = _elementwise_op_in_dygraph(input, - label, - axis=-1, - act='abs', - op_name='elementwise_sub') + unreduced = _C_ops.abs(_C_ops.subtract(input, label)) + if reduction == 'mean': return _C_ops.mean_all(unreduced) elif reduction == 'sum': diff --git a/python/paddle/tensor/math.py b/python/paddle/tensor/math.py index 3c7e9424a3b..8b3b0028e07 100644 --- a/python/paddle/tensor/math.py +++ b/python/paddle/tensor/math.py @@ -737,7 +737,9 @@ def floor_divide(x, y, name=None): """ op_type = 'elementwise_floordiv' axis = -1 - if paddle.in_dynamic_mode(): + if in_dygraph_mode(): + return _C_ops.floor_divide(x, y) + elif _in_legacy_dygraph(): return _elementwise_op_in_dygraph( x, y, axis=axis, op_name=op_type) @@ -777,7 +779,10 @@ def remainder(x, y, name=None): """ op_type = 'elementwise_mod' axis = -1 - if paddle.in_dynamic_mode(): + + if in_dygraph_mode(): + return _C_ops.remainder(x, y) + elif _in_legacy_dygraph(): return _elementwise_op_in_dygraph( x, y, axis=axis, op_name=op_type) @@ -913,7 +918,9 @@ def maximum(x, y, name=None): op_type = 'elementwise_max' axis = -1 act = None - if paddle.in_dynamic_mode(): + if in_dygraph_mode(): + return _C_ops.maximum(x, y) + elif _in_legacy_dygraph(): return _elementwise_op_in_dygraph( x, y, axis=axis, act=act, op_name=op_type) return _elementwise_op(LayerHelper(op_type, **locals())) @@ -972,7 +979,9 @@ def minimum(x, y, name=None): op_type = 'elementwise_min' axis = -1 act = None - if paddle.in_dynamic_mode(): + if in_dygraph_mode(): + return _C_ops.minimum(x, y) + elif _in_legacy_dygraph(): return _elementwise_op_in_dygraph( x, y, axis=axis, act=act, op_name=op_type) return _elementwise_op(LayerHelper(op_type, **locals())) -- GitLab