aboutsummaryrefslogtreecommitdiff
path: root/delegate
diff options
context:
space:
mode:
authorMike Kelly <mike.kelly@arm.com>2021-04-06 12:25:55 +0100
committerMatthew Sloyan <matthew.sloyan@arm.com>2021-04-09 12:38:48 +0100
commit1f140f7226c4ed7bc5cbaf2ce09654eee452f4bf (patch)
tree044d491d429b6da4d85530afd4ea2a310cdbb827 /delegate
parent7c67fabc86b6647855beebac9f6cfe92341357cb (diff)
downloadarmnn-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')
-rw-r--r--delegate/src/ArgMinMax.hpp32
-rw-r--r--delegate/src/DelegateUtils.hpp2
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]);
}