diff --git a/src/core/tests/frontend/paddle/op_fuzzy.cpp b/src/core/tests/frontend/paddle/op_fuzzy.cpp index 7fc91fdacb63fe..bd4faafae75cdc 100644 --- a/src/core/tests/frontend/paddle/op_fuzzy.cpp +++ b/src/core/tests/frontend/paddle/op_fuzzy.cpp @@ -102,6 +102,7 @@ static const std::vector models{ std::string("elementwise_div1"), std::string("elementwise_max1"), std::string("elementwise_min1"), + std::string("elementwise_mod1"), std::string("elementwise_mul1"), std::string("elementwise_pow1"), std::string("elementwise_sub1"), @@ -109,6 +110,7 @@ static const std::vector models{ std::string("elementwise_div2"), std::string("elementwise_max2"), std::string("elementwise_min2"), + std::string("elementwise_mod2"), std::string("elementwise_mul2"), std::string("elementwise_pow2"), std::string("elementwise_sub2"), @@ -116,6 +118,7 @@ static const std::vector models{ std::string("elementwise_div3"), std::string("elementwise_max3"), std::string("elementwise_min3"), + std::string("elementwise_mod3"), std::string("elementwise_mul3"), std::string("elementwise_pow3"), std::string("elementwise_sub3"), @@ -123,6 +126,7 @@ static const std::vector models{ std::string("elementwise_div4"), std::string("elementwise_max4"), std::string("elementwise_min4"), + std::string("elementwise_mod4"), std::string("elementwise_mul4"), std::string("elementwise_pow4"), std::string("elementwise_sub4"), diff --git a/src/core/tests/frontend/paddle/test_models/gen_scripts/generate_elementwise_ops.py b/src/core/tests/frontend/paddle/test_models/gen_scripts/generate_elementwise_ops.py index bbe45e21e82711..1fa0cd375a2170 100644 --- a/src/core/tests/frontend/paddle/test_models/gen_scripts/generate_elementwise_ops.py +++ b/src/core/tests/frontend/paddle/test_models/gen_scripts/generate_elementwise_ops.py @@ -162,6 +162,27 @@ def elementwise_pow(name : str, x, y, axis, in_dtype): return outs[0] +def elementwise_mod(name : str, x, y, axis, in_dtype): + import paddle + paddle.enable_static() + + with paddle.static.program_guard(paddle.static.Program(), paddle.static.Program()): + node_x = paddle.static.data(name = 'x', shape = x.shape, dtype = in_dtype) + node_y = paddle.static.data(name = 'y', shape = y.shape, dtype = in_dtype) + out = paddle.fluid.layers.nn.elementwise_mod(node_x, node_y, axis=axis) + + cpu = paddle.static.cpu_places(1) + exe = paddle.static.Executor(cpu[0]) + + # startup program will call initializer to initialize the parameters. + exe.run(paddle.static.default_startup_program()) + outs = exe.run( + feed={'x': x, 'y': y}, + fetch_list=[out]) + saveModel(name, exe, feedkeys=['x', 'y'], fetchlist=[out], inputs=[x, y], outputs=[outs[0]], target_dir=sys.argv[1]) + + return outs[0] + def elementwise_ops(name : str, data_x, data_y, axis, in_dtype): elementwise_add("elementwise_add" + name, data_x, data_y, axis, in_dtype) elementwise_sub("elementwise_sub" + name, data_x, data_y, axis, in_dtype) @@ -170,6 +191,7 @@ def elementwise_ops(name : str, data_x, data_y, axis, in_dtype): elementwise_min("elementwise_min" + name, data_x, data_y, axis, in_dtype) elementwise_max("elementwise_max" + name, data_x, data_y, axis, in_dtype) elementwise_pow("elementwise_pow" + name, data_x, data_y, axis, in_dtype) + elementwise_mod("elementwise_mod" + name, data_x, data_y, axis, in_dtype) def main(): diff --git a/src/frontends/paddle/src/op/elementwise_ops.cpp b/src/frontends/paddle/src/op/elementwise_ops.cpp index b833f1a19d4a1f..7c45dbcb9e984f 100644 --- a/src/frontends/paddle/src/op/elementwise_ops.cpp +++ b/src/frontends/paddle/src/op/elementwise_ops.cpp @@ -46,6 +46,10 @@ NamedOutputs elementwise_greater_equal(const NodeContext& node_context) { return elementwise_ops(node_context); } +NamedOutputs elementwise_mod(const NodeContext& node_context) { + return elementwise_ops(node_context); +} + } // namespace op } // namespace paddle } // namespace frontend diff --git a/src/frontends/paddle/src/op_table.cpp b/src/frontends/paddle/src/op_table.cpp index 657ae8fd8c6207..888ef57ae9fbe8 100644 --- a/src/frontends/paddle/src/op_table.cpp +++ b/src/frontends/paddle/src/op_table.cpp @@ -28,6 +28,7 @@ OP_CONVERTER(elementwise_equal); OP_CONVERTER(elementwise_greater_equal); OP_CONVERTER(elementwise_max); OP_CONVERTER(elementwise_min); +OP_CONVERTER(elementwise_mod); OP_CONVERTER(elementwise_mul); OP_CONVERTER(elementwise_pow); OP_CONVERTER(elementwise_sub); @@ -119,6 +120,7 @@ std::map get_supported_ops() { {"elementwise_div", op::elementwise_div}, {"elementwise_max", op::elementwise_max}, {"elementwise_min", op::elementwise_min}, + {"elementwise_mod", op::elementwise_mod}, {"elementwise_mul", op::elementwise_mul}, {"elementwise_pow", op::elementwise_pow}, {"elementwise_sub", op::elementwise_sub},