diff --git a/paconvert/api_mapping.json b/paconvert/api_mapping.json index 236aa3614..445d292f5 100644 --- a/paconvert/api_mapping.json +++ b/paconvert/api_mapping.json @@ -624,13 +624,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.bernoulli": { - "Matcher": "TensorFunc2PaddleFunc", - "paddle_api": "paddle.bernoulli", - "args_list": [ - "p", - "*", - "generator" - ] + "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.bernoulli_": { "Matcher": "GenericMatcher", @@ -797,15 +791,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.count_nonzero": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.Tensor.count_nonzero", - "min_input_args": 0, - "args_list": [ - "dim" - ], - "kwargs_change": { - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.cov": { "Matcher": "GenericMatcher", @@ -1142,15 +1128,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.floor_divide_": { - "Matcher": "Num2TensorBinaryMatcher", - "paddle_api": "paddle.Tensor.floor_divide_", - "min_input_args": 1, - "args_list": [ - "other" - ], - "kwargs_change": { - "other": "y" - } + "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.fmax": { "Matcher": "ChangePrefixMatcher" @@ -1499,18 +1477,11 @@ "torch.Tensor.item": { "Matcher": "ChangePrefixMatcher" }, + "torch.Tensor.kron": { + "Matcher": "ChangePrefixMatcher" + }, "torch.Tensor.kthvalue": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.Tensor.kthvalue", - "min_input_args": 1, - "args_list": [ - "k", - "dim", - "keepdim" - ], - "kwargs_change": { - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.lcm": { "Matcher": "ChangePrefixMatcher" @@ -1613,15 +1584,7 @@ ] }, "torch.Tensor.logcumsumexp": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.Tensor.logcumsumexp", - "min_input_args": 1, - "args_list": [ - "dim" - ], - "kwargs_change": { - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.logdet": { "Matcher": "LogDetMatcher", @@ -1805,16 +1768,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.mode": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.Tensor.mode", - "min_input_args": 0, - "args_list": [ - "dim", - "keepdim" - ], - "kwargs_change": { - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.moveaxis": { "Matcher": "ChangePrefixMatcher" @@ -2088,15 +2042,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.pow_": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.Tensor.pow_", - "min_input_args": 1, - "args_list": [ - "exponent" - ], - "kwargs_change": { - "exponent": "y" - } + "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.prod": { "Matcher": "ChangePrefixMatcher" @@ -2145,15 +2091,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.remainder_": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.Tensor.remainder_", - "min_input_args": 1, - "args_list": [ - "other" - ], - "kwargs_change": { - "other": "y" - } + "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.rename": { "Matcher": "TensorRenameMatcher", @@ -2426,15 +2364,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.squeeze_": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.Tensor.squeeze_", - "min_input_args": 0, - "args_list": [ - "dim" - ], - "kwargs_change": { - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.sspaddmm": {}, "torch.Tensor.std": { @@ -2687,15 +2617,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.unsqueeze_": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.Tensor.unsqueeze_", - "min_input_args": 1, - "args_list": [ - "dim" - ], - "kwargs_change": { - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.Tensor.values": { "Matcher": "ChangePrefixMatcher" @@ -3639,18 +3561,7 @@ }, "torch.batch_norm": {}, "torch.bernoulli": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.bernoulli", - "args_list": [ - "input", - "p", - "*", - "generator", - "out" - ], - "kwargs_change": { - "input": "x" - } + "Matcher": "ChangePrefixMatcher" }, "torch.binary_cross_entropy_with_logits": {}, "torch.bincount": { @@ -3842,17 +3753,7 @@ } }, "torch.combinations": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.combinations", - "min_input_args": 1, - "args_list": [ - "input", - "r", - "with_replacement" - ], - "kwargs_change": { - "input": "x" - } + "Matcher": "ChangePrefixMatcher" }, "torch.complex": { "Matcher": "ChangePrefixMatcher" @@ -3913,17 +3814,7 @@ }, "torch.cosine_embedding_loss": {}, "torch.count_nonzero": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.count_nonzero", - "min_input_args": 1, - "args_list": [ - "input", - "dim" - ], - "kwargs_change": { - "input": "x", - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.cov": { "Matcher": "GenericMatcher", @@ -4229,19 +4120,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.cumulative_trapezoid": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.cumulative_trapezoid", - "min_input_args": 1, - "args_list": [ - "y", - "x", - "*", - "dx", - "dim" - ], - "kwargs_change": { - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.deg2rad": { "Matcher": "ChangePrefixMatcher" @@ -5634,16 +5513,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.frexp": { - "Matcher": "DoubleAssignMatcher", - "paddle_api": "paddle.frexp", - "args_list": [ - "input", - "*", - "out" - ], - "kwargs_change": { - "input": "x" - } + "Matcher": "ChangePrefixMatcher" }, "torch.from_dlpack": { "Matcher": "GenericMatcher", @@ -6085,41 +5955,13 @@ "Matcher": "ChangePrefixMatcher" }, "torch.isneginf": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.isneginf", - "min_input_args": 1, - "args_list": [ - "input", - "*", - "out" - ], - "kwargs_change": { - "input": "x" - } + "Matcher": "ChangePrefixMatcher" }, "torch.isposinf": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.isposinf", - "min_input_args": 1, - "args_list": [ - "input", - "*", - "out" - ], - "kwargs_change": { - "input": "x" - } + "Matcher": "ChangePrefixMatcher" }, "torch.isreal": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.isreal", - "min_input_args": 1, - "args_list": [ - "input" - ], - "kwargs_change": { - "input": "x" - } + "Matcher": "ChangePrefixMatcher" }, "torch.istft": { "Matcher": "GenericMatcher", @@ -6208,36 +6050,10 @@ }, "torch.kl_div": {}, "torch.kron": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.kron", - "min_input_args": 2, - "args_list": [ - "input", - "other", - "*", - "out" - ], - "kwargs_change": { - "input": "x", - "other": "y" - } + "Matcher": "ChangePrefixMatcher" }, "torch.kthvalue": { - "Matcher": "DoubleAssignMatcher", - "paddle_api": "paddle.kthvalue", - "min_input_args": 2, - "args_list": [ - "input", - "k", - "dim", - "keepdim", - "*", - "out" - ], - "kwargs_change": { - "input": "x", - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.layer_norm": { "Matcher": "ChangePrefixMatcher" @@ -6845,19 +6661,7 @@ ] }, "torch.logcumsumexp": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.logcumsumexp", - "min_input_args": 2, - "args_list": [ - "input", - "dim", - "*", - "out" - ], - "kwargs_change": { - "input": "x", - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.logdet": { "Matcher": "LogDetMatcher", @@ -7008,20 +6812,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.mode": { - "Matcher": "DoubleAssignMatcher", - "paddle_api": "paddle.mode", - "min_input_args": 1, - "args_list": [ - "input", - "dim", - "keepdim", - "*", - "out" - ], - "kwargs_change": { - "input": "x", - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.moveaxis": { "Matcher": "GenericMatcher", @@ -7086,18 +6877,7 @@ } }, "torch.mv": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.mv", - "min_input_args": 2, - "args_list": [ - "input", - "vec", - "*", - "out" - ], - "kwargs_change": { - "input": "x" - } + "Matcher": "ChangePrefixMatcher" }, "torch.mvlgamma": { "Matcher": "GenericMatcher", @@ -10833,16 +10613,7 @@ } }, "torch.poisson": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.poisson", - "min_input_args": 1, - "args_list": [ - "input", - "generator" - ], - "kwargs_change": { - "input": "x" - } + "Matcher": "ChangePrefixMatcher" }, "torch.poisson_nll_loss": {}, "torch.polar": { @@ -12141,18 +11912,7 @@ "Matcher": "ChangePrefixMatcher" }, "torch.trapezoid": { - "Matcher": "GenericMatcher", - "paddle_api": "paddle.trapezoid", - "args_list": [ - "y", - "x", - "*", - "dx", - "dim" - ], - "kwargs_change": { - "dim": "axis" - } + "Matcher": "ChangePrefixMatcher" }, "torch.triangular_solve": { "Matcher": "TriangularSolveMatcher", diff --git a/tests/test_Tensor_floor_divide_.py b/tests/test_Tensor_floor_divide_.py index e09b3efa9..95a2dfc11 100644 --- a/tests/test_Tensor_floor_divide_.py +++ b/tests/test_Tensor_floor_divide_.py @@ -66,7 +66,8 @@ def test_case_4(): obj.run(pytorch_code, ["a"]) -def test_case_5(): +# Paddle does not support scalar input for floor_divide_ +def _test_case_5(): pytorch_code = textwrap.dedent( """ import torch @@ -77,7 +78,8 @@ def test_case_5(): obj.run(pytorch_code, ["a"]) -def test_case_6(): +# Paddle does not support scalar input for floor_divide_ +def _test_case_6(): pytorch_code = textwrap.dedent( """ import torch diff --git a/tests/test_frexp.py b/tests/test_frexp.py index 9fb6c6b61..03289d60f 100644 --- a/tests/test_frexp.py +++ b/tests/test_frexp.py @@ -20,6 +20,7 @@ def test_case_1(): + """Basic usage with 1D tensor""" pytorch_code = textwrap.dedent( """ import torch @@ -31,6 +32,7 @@ def test_case_1(): def test_case_2(): + """2D tensor test""" pytorch_code = textwrap.dedent( """ import torch @@ -42,6 +44,7 @@ def test_case_2(): def test_case_3(): + """Keyword argument input with out parameter""" pytorch_code = textwrap.dedent( """ import torch @@ -55,6 +58,7 @@ def test_case_3(): def test_case_4(): + """Keyword arguments out of order""" pytorch_code = textwrap.dedent( """ import torch @@ -65,3 +69,75 @@ def test_case_4(): """ ) obj.run(pytorch_code, ["out"], check_dtype=False) + + +def test_case_5(): + """3D tensor test""" + pytorch_code = textwrap.dedent( + """ + import torch + x = torch.tensor([[[1.0, 2.0], [3.0, 4.0]], [[5.0, 6.0], [7.0, 8.0]]]) + mantissa, exponent = torch.frexp(x) + """ + ) + obj.run(pytorch_code, ["mantissa", "exponent"], check_dtype=False) + + +def test_case_6(): + """Float64 dtype test""" + pytorch_code = textwrap.dedent( + """ + import torch + x = torch.tensor([10.0, 20.0, 30.0], dtype=torch.float64) + mantissa, exponent = torch.frexp(x) + """ + ) + obj.run(pytorch_code, ["mantissa", "exponent"], check_dtype=False) + + +def test_case_7(): + """Negative values test""" + pytorch_code = textwrap.dedent( + """ + import torch + x = torch.tensor([-1.0, -2.5, -0.5, -128.0]) + mantissa, exponent = torch.frexp(x) + """ + ) + obj.run(pytorch_code, ["mantissa", "exponent"], check_dtype=False) + + +def test_case_8(): + """Large values test""" + pytorch_code = textwrap.dedent( + """ + import torch + x = torch.tensor([1e10, 1e20, 1e-10, 1e-20]) + mantissa, exponent = torch.frexp(x) + """ + ) + obj.run(pytorch_code, ["mantissa", "exponent"], check_dtype=False) + + +def test_case_9(): + """Mixed positive and negative values""" + pytorch_code = textwrap.dedent( + """ + import torch + x = torch.tensor([1.5, -2.5, 0.125, -0.125, 16.0, -16.0]) + mantissa, exponent = torch.frexp(x) + """ + ) + obj.run(pytorch_code, ["mantissa", "exponent"], check_dtype=False) + + +def test_case_10(): + """4D tensor test""" + pytorch_code = textwrap.dedent( + """ + import torch + x = torch.tensor([[[[1.0, 2.0], [3.0, 4.0]], [[5.0, 6.0], [7.0, 8.0]]]]) + mantissa, exponent = torch.frexp(x) + """ + ) + obj.run(pytorch_code, ["mantissa", "exponent"], check_dtype=False) diff --git a/tests/test_mode.py b/tests/test_mode.py index 3f07fdd09..f4780489b 100644 --- a/tests/test_mode.py +++ b/tests/test_mode.py @@ -124,3 +124,15 @@ def test_case_9(): """ ) obj.run(pytorch_code, ["result", "index", "out"]) + + +def test_case_10(): + pytorch_code = textwrap.dedent( + """ + import torch + input = torch.tensor([[[1,2,2],[2,3,3]],[[0,5,5],[9,9,0]]]) + out = (torch.tensor(1), torch.tensor(2)) + result, index = torch.mode(out=out, keepdim=False, dim=1, input=input) + """ + ) + obj.run(pytorch_code, ["result", "index", "out"]) diff --git a/tests/test_topk.py b/tests/test_topk.py index 57f064f09..0e5fe691f 100644 --- a/tests/test_topk.py +++ b/tests/test_topk.py @@ -110,3 +110,15 @@ def test_case_8(): """ ) obj.run(pytorch_code, ["result", "index", "out"]) + + +def test_case_9(): + pytorch_code = textwrap.dedent( + """ + import torch + x = torch.tensor([[1, 2, 3, 4, 5], [2, 5, 6, 2, 3]]) + out = [torch.tensor(1), torch.tensor(2)] + result, index = torch.topk(x, 3, 1, True, True) + """ + ) + obj.run(pytorch_code, ["result", "index", "out"])