From b4113475f2c39f4e599cbf83fc5acc33c178cb43 Mon Sep 17 00:00:00 2001 From: Chin-Chang Yang <2770271+ChinChangYang@users.noreply.github.com> Date: Tue, 4 Nov 2025 11:45:46 +0800 Subject: [PATCH] Reduce mish error by an alternative without softplus op --- coremltools/converters/mil/frontend/torch/ops.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/coremltools/converters/mil/frontend/torch/ops.py b/coremltools/converters/mil/frontend/torch/ops.py index 8691dd93d..0bab71830 100644 --- a/coremltools/converters/mil/frontend/torch/ops.py +++ b/coremltools/converters/mil/frontend/torch/ops.py @@ -1803,9 +1803,15 @@ def mish(context, node): inputs = _get_inputs(context, node, expected=1) x = inputs[0] - softplus = mb.softplus(x=x) - tanh = mb.tanh(x=softplus) - res = mb.mul(x=x, y=tanh, name=node.name) + # e = exp(x) + # mish = x / (1 + 2 / (e * (e + 2))) + e = mb.exp(x=x) + ep2 = mb.add(x=e, y=2.0) + emep2 = mb.mul(x=e, y=ep2) + tdemep2 = mb.real_div(x=2.0, y=emep2) + optdemep2 = mb.add(x=1.0, y=tdemep2) + res = mb.real_div(x=x, y=optdemep2, name=node.name) + context.add(res)