diff options
author | Matthew Sloyan <matthew.sloyan@arm.com> | 2021-10-07 11:48:58 +0100 |
---|---|---|
committer | Matthew Sloyan <matthew.sloyan@arm.com> | 2021-10-07 12:59:17 +0100 |
commit | 4d217c02fe2c0a32ff9da69d8fe375a75173c0f3 (patch) | |
tree | c8c7b34da1d6f1ce3a1cc9866203c108568e411c /src/armnnTfLiteParser/TfLiteParser.cpp | |
parent | eb70c91a4180b1b437040b00296ff0065de6f051 (diff) | |
download | armnn-4d217c02fe2c0a32ff9da69d8fe375a75173c0f3.tar.gz |
IVGCVSW-6461 Building Arm NN failed after adding Conv3d to TFLiteparser
* Add hash define to Conv3d for backwards compatibility when compiling
with TF 2.3.1
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: I70eec3b26430240852938af34b065b32bab91ebe
Diffstat (limited to 'src/armnnTfLiteParser/TfLiteParser.cpp')
-rw-r--r-- | src/armnnTfLiteParser/TfLiteParser.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/armnnTfLiteParser/TfLiteParser.cpp b/src/armnnTfLiteParser/TfLiteParser.cpp index 104a55e675..81d491a1a1 100644 --- a/src/armnnTfLiteParser/TfLiteParser.cpp +++ b/src/armnnTfLiteParser/TfLiteParser.cpp @@ -32,8 +32,6 @@ #include <fmt/format.h> -#include <tensorflow/lite/version.h> - #include <algorithm> #include <fstream> #include <iostream> @@ -642,7 +640,10 @@ TfLiteParserImpl::TfLiteParserImpl(const Optional<ITfLiteParser::TfLiteParserOpt m_ParserFunctions[tflite::BuiltinOperator_CAST] = &TfLiteParserImpl::ParseCast; m_ParserFunctions[tflite::BuiltinOperator_CONCATENATION] = &TfLiteParserImpl::ParseConcatenation; m_ParserFunctions[tflite::BuiltinOperator_CONV_2D] = &TfLiteParserImpl::ParseConv2D; + // Conv3D support was added in TF 2.5, so for backwards compatibility a hash define is needed. + #if defined(ARMNN_POST_TFLITE_2_3) m_ParserFunctions[tflite::BuiltinOperator_CONV_3D] = &TfLiteParserImpl::ParseConv3D; + #endif m_ParserFunctions[tflite::BuiltinOperator_CUSTOM] = &TfLiteParserImpl::ParseCustomOperator; m_ParserFunctions[tflite::BuiltinOperator_DEPTH_TO_SPACE] = &TfLiteParserImpl::ParseDepthToSpace; m_ParserFunctions[tflite::BuiltinOperator_DEPTHWISE_CONV_2D] = &TfLiteParserImpl::ParseDepthwiseConv2D; @@ -772,7 +773,7 @@ INetworkPtr TfLiteParserImpl::CreateNetworkFromModel() auto const& opCodePtr = m_Model->operator_codes[op->opcode_index]; // work around the introduction of the deprecated_builtin_code introduced in 2.4 in a backwards compatible manner -#if TF_MAJOR_VERSION > 2 || (TF_MAJOR_VERSION == 2 && TF_MINOR_VERSION > 3) +#if defined(ARMNN_POST_TFLITE_2_3) auto builtinCode = std::max(opCodePtr->builtin_code, static_cast<tflite::BuiltinOperator>(opCodePtr->deprecated_builtin_code)); #else @@ -899,7 +900,7 @@ void TfLiteParserImpl::ParseUnsupportedOperator(size_t subgraphIndex, size_t ope auto opcodeIndex = operatorPtr->opcode_index; // work around the introduction of the deprecated_builtin_code introduced in 2.4 in a backwards compatible manner -#if TF_MAJOR_VERSION > 2 || (TF_MAJOR_VERSION == 2 && TF_MINOR_VERSION > 3) +#if defined(ARMNN_POST_TFLITE_2_3) auto opcode = std::max(m_Model->operator_codes[opcodeIndex]->builtin_code, static_cast<tflite::BuiltinOperator>(m_Model->operator_codes[opcodeIndex]->deprecated_builtin_code)); #else @@ -1049,6 +1050,8 @@ void TfLiteParserImpl::ParseConv2D(size_t subgraphIndex, size_t operatorIndex) RegisterOutputSlots(subgraphIndex, operatorIndex, layer, {outputTensorIndexes[0]}); } +// Conv3D support was added in TF 2.5, so for backwards compatibility a hash define is needed. +#if defined(ARMNN_POST_TFLITE_2_3) void TfLiteParserImpl::ParseConv3D(size_t subgraphIndex, size_t operatorIndex) { CHECK_MODEL(m_Model, subgraphIndex, operatorIndex); @@ -1132,6 +1135,7 @@ void TfLiteParserImpl::ParseConv3D(size_t subgraphIndex, size_t operatorIndex) auto outputTensorIndexes = AsUnsignedVector(GetOutputTensorIds(m_Model, subgraphIndex, operatorIndex)); RegisterOutputSlots(subgraphIndex, operatorIndex, layer, {outputTensorIndexes[0]}); } +#endif void TfLiteParserImpl::ParseDepthwiseConv2D(size_t subgraphIndex, size_t operatorIndex) { |