diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/armnn/Network.cpp | 10 | ||||
-rw-r--r-- | src/armnnDeserializer/Deserializer.cpp | 4 | ||||
-rw-r--r-- | src/armnnSerializer/ArmnnSchema.fbs | 4 | ||||
-rw-r--r-- | src/armnnSerializer/Serializer.cpp | 8 | ||||
-rw-r--r-- | src/armnnSerializer/test/SerializerTests.cpp | 14 | ||||
-rw-r--r-- | src/armnnTfLiteParser/TfLiteParser.cpp | 2 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClResizeWorkload.cpp | 4 | ||||
-rw-r--r-- | src/backends/neon/workloads/NeonResizeWorkload.cpp | 2 | ||||
-rw-r--r-- | src/backends/reference/workloads/RefResizeWorkload.cpp | 2 |
9 files changed, 35 insertions, 15 deletions
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp index a047297e15..d636d01291 100644 --- a/src/armnn/Network.cpp +++ b/src/armnn/Network.cpp @@ -1458,10 +1458,12 @@ IConnectableLayer* Network::AddResizeBilinearLayer(const ResizeBilinearDescripto const char* name) { ResizeDescriptor resizeDescriptor; - resizeDescriptor.m_Method = ResizeMethod::Bilinear; - resizeDescriptor.m_DataLayout = descriptor.m_DataLayout; - resizeDescriptor.m_TargetWidth = descriptor.m_TargetWidth; - resizeDescriptor.m_TargetHeight = descriptor.m_TargetHeight; + resizeDescriptor.m_Method = ResizeMethod::Bilinear; + resizeDescriptor.m_DataLayout = descriptor.m_DataLayout; + resizeDescriptor.m_TargetWidth = descriptor.m_TargetWidth; + resizeDescriptor.m_TargetHeight = descriptor.m_TargetHeight; + resizeDescriptor.m_AlignCorners = descriptor.m_AlignCorners; + resizeDescriptor.m_HalfPixelCenters = descriptor.m_HalfPixelCenters; return m_Graph->AddLayer<ResizeLayer>(resizeDescriptor, name); } diff --git a/src/armnnDeserializer/Deserializer.cpp b/src/armnnDeserializer/Deserializer.cpp index 36beebc1cd..bea34e16e7 100644 --- a/src/armnnDeserializer/Deserializer.cpp +++ b/src/armnnDeserializer/Deserializer.cpp @@ -2045,6 +2045,8 @@ void Deserializer::ParseResize(GraphPtr graph, unsigned int layerIndex) descriptor.m_TargetHeight = flatBufferDescriptor->targetHeight(); descriptor.m_Method = ToResizeMethod(flatBufferDescriptor->method()); descriptor.m_DataLayout = ToDataLayout(flatBufferDescriptor->dataLayout()); + descriptor.m_AlignCorners = flatBufferDescriptor->alignCorners(); + descriptor.m_HalfPixelCenters = flatBufferDescriptor->halfPixelCenters(); auto layerName = GetLayerName(graph, layerIndex); IConnectableLayer* layer = m_Network->AddResizeLayer(descriptor, layerName.c_str()); @@ -2073,6 +2075,8 @@ void Deserializer::ParseResizeBilinear(GraphPtr graph, unsigned int layerIndex) descriptor.m_TargetHeight = flatBufferDescriptor->targetHeight(); descriptor.m_Method = armnn::ResizeMethod::Bilinear; descriptor.m_DataLayout = ToDataLayout(flatBufferDescriptor->dataLayout()); + descriptor.m_AlignCorners = flatBufferDescriptor->alignCorners(); + descriptor.m_HalfPixelCenters = flatBufferDescriptor->halfPixelCenters(); auto layerName = GetLayerName(graph, layerIndex); IConnectableLayer* layer = m_Network->AddResizeLayer(descriptor, layerName.c_str()); diff --git a/src/armnnSerializer/ArmnnSchema.fbs b/src/armnnSerializer/ArmnnSchema.fbs index 6e5ee3f3d3..532c12c706 100644 --- a/src/armnnSerializer/ArmnnSchema.fbs +++ b/src/armnnSerializer/ArmnnSchema.fbs @@ -558,6 +558,8 @@ table ResizeBilinearDescriptor { targetWidth:uint; targetHeight:uint; dataLayout:DataLayout; + alignCorners:bool; + halfPixelCenters:bool; } table SliceLayer { @@ -817,6 +819,8 @@ table ResizeDescriptor { targetWidth:uint; method:ResizeMethod = NearestNeighbor; dataLayout:DataLayout; + alignCorners:bool; + halfPixelCenters:bool; } table StackLayer { diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp index c4d3cfb5dd..9c62a93e3b 100644 --- a/src/armnnSerializer/Serializer.cpp +++ b/src/armnnSerializer/Serializer.cpp @@ -864,7 +864,9 @@ void SerializerVisitor::VisitResizeBilinearLayer(const armnn::IConnectableLayer* CreateResizeBilinearDescriptor(m_flatBufferBuilder, resizeDescriptor.m_TargetWidth, resizeDescriptor.m_TargetHeight, - GetFlatBufferDataLayout(resizeDescriptor.m_DataLayout)); + GetFlatBufferDataLayout(resizeDescriptor.m_DataLayout), + resizeDescriptor.m_AlignCorners, + resizeDescriptor.m_HalfPixelCenters); auto flatBufferLayer = serializer::CreateResizeBilinearLayer(m_flatBufferBuilder, flatBufferBaseLayer, @@ -886,7 +888,9 @@ void SerializerVisitor::VisitResizeLayer(const armnn::IConnectableLayer* layer, resizeDescriptor.m_TargetHeight, resizeDescriptor.m_TargetWidth, GetFlatBufferResizeMethod(resizeDescriptor.m_Method), - GetFlatBufferDataLayout(resizeDescriptor.m_DataLayout)); + GetFlatBufferDataLayout(resizeDescriptor.m_DataLayout), + resizeDescriptor.m_AlignCorners, + resizeDescriptor.m_HalfPixelCenters); auto flatBufferLayer = serializer::CreateResizeLayer(m_flatBufferBuilder, flatBufferBaseLayer, diff --git a/src/armnnSerializer/test/SerializerTests.cpp b/src/armnnSerializer/test/SerializerTests.cpp index 76ac5a4de2..e7f93c6740 100644 --- a/src/armnnSerializer/test/SerializerTests.cpp +++ b/src/armnnSerializer/test/SerializerTests.cpp @@ -2206,6 +2206,8 @@ BOOST_AUTO_TEST_CASE(SerializeResize) desc.m_TargetWidth = 4; desc.m_TargetHeight = 2; desc.m_Method = armnn::ResizeMethod::NearestNeighbor; + desc.m_AlignCorners = true; + desc.m_HalfPixelCenters = true; armnn::INetworkPtr network = armnn::INetwork::Create(); armnn::IConnectableLayer* const inputLayer = network->AddInputLayer(0); @@ -2241,10 +2243,12 @@ public: { VerifyNameAndConnections(layer, name); - BOOST_CHECK(descriptor.m_Method == armnn::ResizeMethod::Bilinear); - BOOST_CHECK(descriptor.m_TargetWidth == m_Descriptor.m_TargetWidth); - BOOST_CHECK(descriptor.m_TargetHeight == m_Descriptor.m_TargetHeight); - BOOST_CHECK(descriptor.m_DataLayout == m_Descriptor.m_DataLayout); + BOOST_CHECK(descriptor.m_Method == armnn::ResizeMethod::Bilinear); + BOOST_CHECK(descriptor.m_TargetWidth == m_Descriptor.m_TargetWidth); + BOOST_CHECK(descriptor.m_TargetHeight == m_Descriptor.m_TargetHeight); + BOOST_CHECK(descriptor.m_DataLayout == m_Descriptor.m_DataLayout); + BOOST_CHECK(descriptor.m_AlignCorners == m_Descriptor.m_AlignCorners); + BOOST_CHECK(descriptor.m_HalfPixelCenters == m_Descriptor.m_HalfPixelCenters); } void VisitResizeBilinearLayer(const armnn::IConnectableLayer*, @@ -2267,6 +2271,8 @@ BOOST_AUTO_TEST_CASE(SerializeResizeBilinear) armnn::ResizeBilinearDescriptor desc; desc.m_TargetWidth = 4u; desc.m_TargetHeight = 2u; + desc.m_AlignCorners = true; + desc.m_HalfPixelCenters = true; armnn::INetworkPtr network = armnn::INetwork::Create(); armnn::IConnectableLayer* const inputLayer = network->AddInputLayer(0); diff --git a/src/armnnTfLiteParser/TfLiteParser.cpp b/src/armnnTfLiteParser/TfLiteParser.cpp index 08bd68d2ae..53b49f48d0 100644 --- a/src/armnnTfLiteParser/TfLiteParser.cpp +++ b/src/armnnTfLiteParser/TfLiteParser.cpp @@ -2168,7 +2168,7 @@ void TfLiteParser::ParseResize(size_t subgraphIndex, size_t operatorIndex, Resiz const auto & operatorPtr = m_Model->subgraphs[subgraphIndex]->operators[operatorIndex]; const auto * options = operatorPtr->builtin_options.AsResizeBilinearOptions(); - desc.m_BilinearAlignCorners = options->align_corners; + desc.m_AlignCorners = options->align_corners; break; } case ResizeMethod::NearestNeighbor: diff --git a/src/backends/cl/workloads/ClResizeWorkload.cpp b/src/backends/cl/workloads/ClResizeWorkload.cpp index 05b212c3d4..adfb3686fd 100644 --- a/src/backends/cl/workloads/ClResizeWorkload.cpp +++ b/src/backends/cl/workloads/ClResizeWorkload.cpp @@ -40,7 +40,7 @@ arm_compute::Status ClResizeWorkloadValidate(const TensorInfo& input, arm_compute::PixelValue(0.f), arm_compute::SamplingPolicy::TOP_LEFT, true, - descriptor.m_BilinearAlignCorners); + descriptor.m_AlignCorners); } ClResizeWorkload::ClResizeWorkload(const ResizeQueueDescriptor& descriptor, const WorkloadInfo& info) : @@ -65,7 +65,7 @@ ClResizeWorkload::ClResizeWorkload(const ResizeQueueDescriptor& descriptor, cons arm_compute::PixelValue(0.f), arm_compute::SamplingPolicy::TOP_LEFT, true, - descriptor.m_Parameters.m_BilinearAlignCorners); + descriptor.m_Parameters.m_AlignCorners); }; void ClResizeWorkload::Execute() const diff --git a/src/backends/neon/workloads/NeonResizeWorkload.cpp b/src/backends/neon/workloads/NeonResizeWorkload.cpp index 9e3be2655c..afb753fd64 100644 --- a/src/backends/neon/workloads/NeonResizeWorkload.cpp +++ b/src/backends/neon/workloads/NeonResizeWorkload.cpp @@ -64,7 +64,7 @@ NeonResizeWorkload::NeonResizeWorkload(const ResizeQueueDescriptor& descriptor, arm_compute::PixelValue(0.f), arm_compute::SamplingPolicy::TOP_LEFT, true, - descriptor.m_Parameters.m_BilinearAlignCorners); + descriptor.m_Parameters.m_AlignCorners); }; void NeonResizeWorkload::Execute() const diff --git a/src/backends/reference/workloads/RefResizeWorkload.cpp b/src/backends/reference/workloads/RefResizeWorkload.cpp index 624b426cbf..4e53c4f650 100644 --- a/src/backends/reference/workloads/RefResizeWorkload.cpp +++ b/src/backends/reference/workloads/RefResizeWorkload.cpp @@ -35,7 +35,7 @@ void RefResizeWorkload::Execute() const outputInfo, m_Data.m_Parameters.m_DataLayout, m_Data.m_Parameters.m_Method, - m_Data.m_Parameters.m_BilinearAlignCorners); + m_Data.m_Parameters.m_AlignCorners); } } //namespace armnn |