From 49e669380499a4bbc9b86cd1f4d8ec7390d57e23 Mon Sep 17 00:00:00 2001 From: Sebastian Larsson Date: Wed, 2 Apr 2025 15:20:25 +0200 Subject: [PATCH] Arm backend: Convert assert to throw ValueError in op_sigmoid Asserts are converted to proper raises to ensure graph integrity. It should not be possible for sigmoid to have more than 1 input for a correctly formatted graph, but in the node visitor we cannot know for sure that the graph is formatted correctly. torch.sigmoid supports more data types than fp32, which is why it should be checked. Change-Id: If90fda18ccedde16ed2448188c3b99f766a5c8b0 Signed-off-by: Sebastian Larsson --- backends/arm/operators/op_sigmoid.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/backends/arm/operators/op_sigmoid.py b/backends/arm/operators/op_sigmoid.py index 01cf2a6ed04..abf60bf747f 100644 --- a/backends/arm/operators/op_sigmoid.py +++ b/backends/arm/operators/op_sigmoid.py @@ -36,7 +36,14 @@ def define_node( output: TosaArg, ) -> None: - assert len(node.all_input_nodes) == 1 - assert inputs[0].dtype == output.dtype == ts.DType.FP32 + if len(node.all_input_nodes) != 1: + raise ValueError( + f"Expected 1 input for {self.target}, got {len(node.all_input_nodes)}" + ) + if inputs[0].dtype != ts.DType.FP32 or output.dtype != ts.DType.FP32: + raise ValueError( + f"Input and output for {self.target} need to be FP32, got input_dtype: " + f"{inputs[0].dtype} and output_dtype: {output.dtype}" + ) tosa_graph.addOperator(TosaOp.Op().SIGMOID, [inputs[0].name], [output.name])