diff options
author | Mike Kelly <mike.kelly@arm.com> | 2021-04-06 12:25:55 +0100 |
---|---|---|
committer | Matthew Sloyan <matthew.sloyan@arm.com> | 2021-04-09 12:38:48 +0100 |
commit | 1f140f7226c4ed7bc5cbaf2ce09654eee452f4bf (patch) | |
tree | 044d491d429b6da4d85530afd4ea2a310cdbb827 /delegate/src | |
parent | 7c67fabc86b6647855beebac9f6cfe92341357cb (diff) | |
download | armnn-1f140f7226c4ed7bc5cbaf2ce09654eee452f4bf.tar.gz |
MLCE-328 Serializer/Deserializer does not support Signed64
* Added support for Signed64 to flatbuffer's schema & updated source tree
* Added support for Signed64 to TFLite Delegate
* Added support for Signed64 to Serializer
* Added support for Signed64 to Deserializer
* Added unit test for ArgMinMax to Deserializer
* Deprecated m_Output_Type from the ArgMinMaxDescriptor: the output type
is solely determined by the DataType of the output Tensor
* Fixed issue where RefArgMinMaxWorkload could output data using
the wrong DataType
* Added Signed64 to RefLayerSupport::IsArgMinMaxSupported as a supported
type
Signed-off-by: Mike Kelly <mike.kelly@arm.com>
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: Ib622c052a1f8aa3e658262f8bde5a6881a8cbe10
Diffstat (limited to 'delegate/src')
-rw-r--r-- | delegate/src/ArgMinMax.hpp | 32 | ||||
-rw-r--r-- | delegate/src/DelegateUtils.hpp | 2 |
2 files changed, 11 insertions, 23 deletions
diff --git a/delegate/src/ArgMinMax.hpp b/delegate/src/ArgMinMax.hpp index 090d18ef65..54994dfef7 100644 --- a/delegate/src/ArgMinMax.hpp +++ b/delegate/src/ArgMinMax.hpp @@ -67,40 +67,26 @@ TfLiteStatus VisitArgMinMaxOperator(DelegateData& delegateData, { desc.m_Function = armnn::ArgMinMaxFunction::Max; auto* argMaxParameters = reinterpret_cast<TfLiteArgMaxParams*>(tfLiteNode->builtin_data); - switch (argMaxParameters->output_type) + if (argMaxParameters->output_type != kTfLiteInt32 && argMaxParameters->output_type != kTfLiteInt64) { - case kTfLiteInt32: - desc.m_Output_Type = armnn::DataType::Signed32; - break; - case kTfLiteInt64: - desc.m_Output_Type = armnn::DataType::Signed64; - break; - default: - TF_LITE_MAYBE_KERNEL_LOG( - tfLiteContext, - "TfLiteArmnnDelegate: output_type data type is not supported in operator #%d node #%d: ", - argMinMaxOperatorCode, nodeIndex); - return kTfLiteError; + TF_LITE_MAYBE_KERNEL_LOG( + tfLiteContext, + "TfLiteArmnnDelegate: output_type data type is not supported in operator #%d node #%d: ", + argMinMaxOperatorCode, nodeIndex); + return kTfLiteError; } } else { desc.m_Function = armnn::ArgMinMaxFunction::Min; auto* argMinParameters = reinterpret_cast<TfLiteArgMinParams*>(tfLiteNode->builtin_data); - switch (argMinParameters->output_type) + if (argMinParameters->output_type != kTfLiteInt32 && argMinParameters->output_type != kTfLiteInt64) { - case kTfLiteInt32: - desc.m_Output_Type = armnn::DataType::Signed32; - break; - case kTfLiteInt64: - desc.m_Output_Type = armnn::DataType::Signed64; - break; - default: - TF_LITE_MAYBE_KERNEL_LOG( + TF_LITE_MAYBE_KERNEL_LOG( tfLiteContext, "TfLiteArmnnDelegate: output_type data type is not supported in operator #%d node #%d: ", argMinMaxOperatorCode, nodeIndex); - return kTfLiteError; + return kTfLiteError; } } diff --git a/delegate/src/DelegateUtils.hpp b/delegate/src/DelegateUtils.hpp index 1b5f1e369e..1e5782ec42 100644 --- a/delegate/src/DelegateUtils.hpp +++ b/delegate/src/DelegateUtils.hpp @@ -391,6 +391,8 @@ armnn::DataType GetDataType(const TfLiteTensor& tfLiteTensor) return armnn::DataType::QSymmS16; case kTfLiteInt32: return armnn::DataType::Signed32; + case kTfLiteInt64: + return armnn::DataType::Signed64; default: throw armnn::Exception(&"TfLiteArmnnDelegate: Unsupported data type: " [ tfLiteTensor.type]); } |