diff options
author | Matthew Sloyan <matthew.sloyan@arm.com> | 2021-10-18 13:07:49 +0100 |
---|---|---|
committer | Matthew Sloyan <matthew.sloyan@arm.com> | 2021-10-20 16:03:04 +0100 |
commit | 5d7b0a314b3e354a6cbcf15f5dd78b50f1e02774 (patch) | |
tree | 3d844c4575193ffddfe3a17c51cb808c9f16ddb0 /src/armnnSerializer/Serializer.cpp | |
parent | 73010788725f8f07efb6df20711ece712ee213ea (diff) | |
download | armnn-5d7b0a314b3e354a6cbcf15f5dd78b50f1e02774.tar.gz |
Add ConstTensorsAsInput support for Conv3d
* Constant weights and biases are now stored as Constant layers.
* Updated Serializer, Deserializer and unit tests to reflect this.
* Updated TfLiteParser.
* Updated Ref backend to handle constant weights and
bias as inputs rather than reading from member variables.
* Added Conv3d EndToEnd test.
* Added NCDHW DataLayout and unit tests.
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: I10cdd354ca5f1c748730f92ffdb36bf810f83c8e
Diffstat (limited to 'src/armnnSerializer/Serializer.cpp')
-rw-r--r-- | src/armnnSerializer/Serializer.cpp | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp index 7e1b74e10d..84a9d53b69 100644 --- a/src/armnnSerializer/Serializer.cpp +++ b/src/armnnSerializer/Serializer.cpp @@ -388,18 +388,15 @@ void SerializerStrategy::SerializeConvolution2dLayer(const armnn::IConnectableLa CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_Convolution2dLayer); } -// Build FlatBuffer for Convolution2dLayer +// Build FlatBuffer for Convolution3dLayer void SerializerStrategy::SerializeConvolution3dLayer(const armnn::IConnectableLayer* layer, const armnn::Convolution3dDescriptor& descriptor, - const std::vector<armnn::ConstTensor>& constants, const char* name) { IgnoreUnused(name); - const armnn::ConstTensor weights = constants[0]; - // Create FlatBuffer BaseLayer - auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Convolution2d); + auto flatBufferBaseLayer = CreateLayerBase(layer, serializer::LayerType::LayerType_Convolution3d); auto flatBufferDescriptor = CreateConvolution3dDescriptor(m_flatBufferBuilder, descriptor.m_PadLeft, @@ -416,21 +413,11 @@ void SerializerStrategy::SerializeConvolution3dLayer(const armnn::IConnectableLa descriptor.m_DilationZ, descriptor.m_BiasEnabled, GetFlatBufferDataLayout(descriptor.m_DataLayout)); - auto flatBufferWeightsConstTensorInfo = CreateConstTensorInfo(weights); - flatbuffers::Offset<serializer::ConstTensor> flatBufferBiasesConstTensorInfo; - - if (constants.size() > 1) - { - const armnn::ConstTensor biases = constants[1]; - flatBufferBiasesConstTensorInfo = CreateConstTensorInfo(biases); - } - // Create the FlatBuffer Convolution2dLayer + // Create the FlatBuffer Convolution3dLayer auto flatBufferLayer = CreateConvolution3dLayer(m_flatBufferBuilder, flatBufferBaseLayer, - flatBufferDescriptor, - flatBufferWeightsConstTensorInfo, - flatBufferBiasesConstTensorInfo); + flatBufferDescriptor); // Add the AnyLayer to the FlatBufferLayers CreateAnyLayer(flatBufferLayer.o, serializer::Layer::Layer_Convolution3dLayer); @@ -2038,7 +2025,6 @@ void SerializerStrategy::ExecuteStrategy(const armnn::IConnectableLayer* layer, static_cast<const armnn::Convolution3dDescriptor&>(descriptor); SerializeConvolution3dLayer(layer, layerDescriptor, - constants, name); break; } |