From 727d017aa3559cb33c97a8d77b5a32fbb98b9e35 Mon Sep 17 00:00:00 2001 From: David Monahan Date: Wed, 4 Oct 2023 10:16:24 +0100 Subject: IVGCVSW-7750 DTS: Fix ElementWise isnan assert * Removed the ASSERTS in TypesUtils.cpp in favour of InvalidArgumentExceptions instead * Added a try/catch block when calling EnqueueWorkload to catch Exceptions raised by bad inputs Signed-off-by: David Monahan Change-Id: Icade014ec75db13722eb5d8adc7bdb93c8862417 --- src/armnn/TypesUtils.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/armnn/TypesUtils.cpp b/src/armnn/TypesUtils.cpp index 74ac231bc9..d419ef84c7 100644 --- a/src/armnn/TypesUtils.cpp +++ b/src/armnn/TypesUtils.cpp @@ -32,8 +32,14 @@ QuantizedType armnn::Quantize(float value, float scale, int32_t offset) static_assert(IsQuantizedType(), "Not an integer type."); constexpr QuantizedType max = std::numeric_limits::max(); constexpr QuantizedType min = std::numeric_limits::lowest(); - ARMNN_ASSERT(scale != 0.f); - ARMNN_ASSERT(!std::isnan(value)); + if (scale == 0.f) + { + throw armnn::InvalidArgumentException("Quantize: Scale cannot be 0.f"); + } + if (std::isnan(value)) + { + throw armnn::InvalidArgumentException("Quantize: Value is NaN"); + } float clampedValue = std::min(std::max((static_cast(offset) + static_cast(round(value/scale))), static_cast(min)), static_cast(max)); @@ -46,8 +52,14 @@ template float armnn::Dequantize(QuantizedType value, float scale, int32_t offset) { static_assert(IsQuantizedType(), "Not an integer type."); - ARMNN_ASSERT(scale != 0.f); - ARMNN_ASSERT(!IsNan(value)); + if (scale == 0.f) + { + throw armnn::InvalidArgumentException("Dequantize: Scale cannot be 0.f"); + } + if (std::isnan(value)) + { + throw armnn::InvalidArgumentException("Dequantize: Value is NaN"); + } return (armnn::numeric_cast(value - offset)) * scale; } -- cgit v1.2.1