From 214f689a9c67bc2657fd2dfab9ffa0897ea0b20c Mon Sep 17 00:00:00 2001 From: Wang Huan Date: Wed, 20 Jul 2022 01:59:54 +0000 Subject: [PATCH 1/4] bilinear_tensor_product yaml --- paddle/phi/api/yaml/legacy_api.yaml | 10 ++++++++++ paddle/phi/api/yaml/legacy_backward.yaml | 9 +++++++++ .../tests/unittests/test_bilinear_tensor_product_op.py | 4 ++-- python/paddle/nn/functional/common.py | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/paddle/phi/api/yaml/legacy_api.yaml b/paddle/phi/api/yaml/legacy_api.yaml index ca5a788d6cbc4..e80b3dca6f143 100644 --- a/paddle/phi/api/yaml/legacy_api.yaml +++ b/paddle/phi/api/yaml/legacy_api.yaml @@ -272,6 +272,16 @@ func : bce_loss backward : bce_loss_grad +- api : bilinear_tensor_product + args : (Tensor x, Tensor y, Tensor weight, Tensor bias) + output : Tensor + infer_meta : + func : BilinearTensorProductInferMeta + kernel : + func : bilinear_tensor_product + optional : bias + backward : bilinear_tensor_product_grad + # bitwise_and - api : bitwise_and args : (Tensor x, Tensor y) diff --git a/paddle/phi/api/yaml/legacy_backward.yaml b/paddle/phi/api/yaml/legacy_backward.yaml index d02fd21f23227..285b1fb437f27 100644 --- a/paddle/phi/api/yaml/legacy_backward.yaml +++ b/paddle/phi/api/yaml/legacy_backward.yaml @@ -239,6 +239,15 @@ func : bce_loss_grad inplace : (out_grad -> input_grad) +- backward_api : bilinear_tensor_product_grad + forward : bilinear_tensor_product (Tensor x, Tensor y, Tensor weight, Tensor bias) -> Tensor(out) + args : (Tensor x, Tensor y, Tensor weight, Tensor out_grad) + output : Tensor(x_grad), Tensor(y_grad), Tensor(weight_grad), Tensor(bias_grad) + infer_meta : + func : BilinearTensorProductGradInferMeta + kernel : + func : bilinear_tensor_product_grad + - backward_api : brelu_grad forward : brelu (Tensor x, float t_min, float t_max) -> Tensor(out) args : (Tensor x, Tensor out_grad, float t_min, float t_max) diff --git a/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py b/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py index 5301924927087..2870c20a34bde 100644 --- a/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py +++ b/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py @@ -63,10 +63,10 @@ def setUp(self): self.outputs = {'Out': output + bias} def test_check_output(self): - self.check_output() + self.check_output(check_eager=True) def test_check_grad_normal(self): - self.check_grad(['X', 'Y', 'Weight', 'Bias'], 'Out') + self.check_grad(['X', 'Y', 'Weight', 'Bias'], 'Out', check_eager=True) if __name__ == "__main__": diff --git a/python/paddle/nn/functional/common.py b/python/paddle/nn/functional/common.py index e10a1c1069141..1f2507be2b6d4 100644 --- a/python/paddle/nn/functional/common.py +++ b/python/paddle/nn/functional/common.py @@ -851,7 +851,7 @@ def bilinear(x1, x2, weight, bias=None, name=None): """ if in_dynamic_mode(): - return _C_ops.bilinear_tensor_product(x1, x2, weight, bias) + return _C_ops.final_state_bilinear_tensor_product(x1, x2, weight, bias) check_variable_and_dtype(x1, 'x1', ['float32', 'float64'], 'bilinear') check_variable_and_dtype(x2, 'x2', ['float32', 'float64'], 'bilinear') From 3584fbc4663f6a2098481330f72e731ac2a4ed15 Mon Sep 17 00:00:00 2001 From: Wang Huan Date: Wed, 20 Jul 2022 06:24:45 +0000 Subject: [PATCH 2/4] refine --- .../fluid/tests/unittests/test_bilinear_tensor_product_op.py | 1 + 1 file changed, 1 insertion(+) diff --git a/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py b/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py index 2870c20a34bde..f0fbdd02889cc 100644 --- a/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py +++ b/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py @@ -41,6 +41,7 @@ class TestBilinearTensorProductOp(OpTest): def setUp(self): self.op_type = "bilinear_tensor_product" + self.python_api = paddle.nn.functional.bilinear batch_size = 6 size0 = 5 size1 = 4 From a693294ddc9b1831941660a571e89e328ccd07a7 Mon Sep 17 00:00:00 2001 From: Wang Huan Date: Wed, 20 Jul 2022 07:18:42 +0000 Subject: [PATCH 3/4] refine --- .../fluid/tests/unittests/test_bilinear_tensor_product_op.py | 1 + 1 file changed, 1 insertion(+) diff --git a/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py b/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py index f0fbdd02889cc..6eb7e8547d27c 100644 --- a/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py +++ b/python/paddle/fluid/tests/unittests/test_bilinear_tensor_product_op.py @@ -18,6 +18,7 @@ import numpy as np import paddle.fluid as fluid from op_test import OpTest +import paddle class TestDygraphBilinearTensorProductAPIError(unittest.TestCase): From f43b6f2cb6b0a51c886c062f07ee88132fa617a9 Mon Sep 17 00:00:00 2001 From: Wang Huan Date: Thu, 21 Jul 2022 03:42:17 +0000 Subject: [PATCH 4/4] refine --- python/paddle/nn/functional/common.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/paddle/nn/functional/common.py b/python/paddle/nn/functional/common.py index 1f2507be2b6d4..b5e34199aafbf 100644 --- a/python/paddle/nn/functional/common.py +++ b/python/paddle/nn/functional/common.py @@ -850,8 +850,10 @@ def bilinear(x1, x2, weight, bias=None, name=None): """ - if in_dynamic_mode(): + if in_dygraph_mode(): return _C_ops.final_state_bilinear_tensor_product(x1, x2, weight, bias) + elif _non_static_mode(): + return _C_ops.bilinear_tensor_product(x1, x2, weight, bias) check_variable_and_dtype(x1, 'x1', ['float32', 'float64'], 'bilinear') check_variable_and_dtype(x2, 'x2', ['float32', 'float64'], 'bilinear')