From 514ee0fb62a51ba7737936e6bf11869e527d58bd Mon Sep 17 00:00:00 2001 From: CircleSpin Date: Thu, 12 Aug 2021 17:25:06 -0400 Subject: [PATCH 1/3] complete celu op --- python/tvm/relay/frontend/onnx.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/python/tvm/relay/frontend/onnx.py b/python/tvm/relay/frontend/onnx.py index 70e6263da67e..97dfbf51cd07 100644 --- a/python/tvm/relay/frontend/onnx.py +++ b/python/tvm/relay/frontend/onnx.py @@ -23,6 +23,7 @@ import numpy as np import tvm from tvm.ir import IRModule +from tvm.relay.transform.transform import ConvertLayout from tvm.topi.utils import get_const_tuple from ... import nd as _nd @@ -3607,6 +3608,7 @@ def _get_convert_map(opset): "ConvInteger": ConvInteger.get_converter(opset), # Random number generation. "RandomUniform": RandomUniform.get_converter(opset), + "Celu": Celu.get_converter(opset), } @@ -3925,6 +3927,19 @@ def _fix_outputs(self, op_name, outputs): return outputs +class Celu(OnnxOpConverter): + """Operator convereter for celu""" + + @classmethod + def _impl_v12(cls, inputs, attr, params): + x = inputs[0] + dtype = infer_type(x).checked_type.dtype + alpha = _op.const(attr.get("alpha", 1.0), dtype) + zero = _op.const(0, dtype) + one = _op.const(1, dtype) + return _op.maximum(zero, x) + _op.minimum(zero, alpha * (_op.exp(x / alpha) - one)) + + def from_onnx( model, shape=None, dtype="float32", opset=None, freeze_params=False, convert_config=None ): From 552f9ee2dbfd187c5f92594d0df3997367b8a727 Mon Sep 17 00:00:00 2001 From: CircleSpin Date: Thu, 12 Aug 2021 17:26:27 -0400 Subject: [PATCH 2/3] forgot to add test --- tests/python/frontend/onnx/test_forward.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/python/frontend/onnx/test_forward.py b/tests/python/frontend/onnx/test_forward.py index 8422cda42afc..2eb47f49b5bb 100644 --- a/tests/python/frontend/onnx/test_forward.py +++ b/tests/python/frontend/onnx/test_forward.py @@ -4668,7 +4668,7 @@ def verify_eyelike(indata): "test_cast_FLOAT_to_BFLOAT16", "test_cast_FLOAT_to_STRING", "test_cast_STRING_to_FLOAT", - "test_celu", + # "test_celu", "test_compress_0", "test_compress_1", "test_compress_default_axis", From b74710f06db4c1f44b78c324674b4e1d8f678ba1 Mon Sep 17 00:00:00 2001 From: CircleSpin Date: Thu, 12 Aug 2021 18:11:16 -0400 Subject: [PATCH 3/3] change order in convert_map, remove comment, delete import hiccup --- python/tvm/relay/frontend/onnx.py | 3 +-- tests/python/frontend/onnx/test_forward.py | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/python/tvm/relay/frontend/onnx.py b/python/tvm/relay/frontend/onnx.py index 97dfbf51cd07..4866189ed872 100644 --- a/python/tvm/relay/frontend/onnx.py +++ b/python/tvm/relay/frontend/onnx.py @@ -23,7 +23,6 @@ import numpy as np import tvm from tvm.ir import IRModule -from tvm.relay.transform.transform import ConvertLayout from tvm.topi.utils import get_const_tuple from ... import nd as _nd @@ -3481,6 +3480,7 @@ def _get_convert_map(opset): "IsNaN": Renamer("isnan"), "Sqrt": Renamer("sqrt"), "Relu": Renamer("relu"), + "Celu": Celu.get_converter(opset), "LeakyRelu": Renamer("leaky_relu"), "Selu": Selu.get_converter(opset), "Elu": Elu.get_converter(opset), @@ -3608,7 +3608,6 @@ def _get_convert_map(opset): "ConvInteger": ConvInteger.get_converter(opset), # Random number generation. "RandomUniform": RandomUniform.get_converter(opset), - "Celu": Celu.get_converter(opset), } diff --git a/tests/python/frontend/onnx/test_forward.py b/tests/python/frontend/onnx/test_forward.py index 2eb47f49b5bb..0b83b8de363d 100644 --- a/tests/python/frontend/onnx/test_forward.py +++ b/tests/python/frontend/onnx/test_forward.py @@ -4668,7 +4668,6 @@ def verify_eyelike(indata): "test_cast_FLOAT_to_BFLOAT16", "test_cast_FLOAT_to_STRING", "test_cast_STRING_to_FLOAT", - # "test_celu", "test_compress_0", "test_compress_1", "test_compress_default_axis",