diff options
Diffstat (limited to 'src/backends/reference')
-rw-r--r-- | src/backends/reference/RefLayerSupport.cpp | 35 | ||||
-rw-r--r-- | src/backends/reference/RefLayerSupport.hpp | 5 | ||||
-rw-r--r-- | src/backends/reference/RefWorkloadFactory.cpp | 10 | ||||
-rw-r--r-- | src/backends/reference/RefWorkloadFactory.hpp | 3 | ||||
-rw-r--r-- | src/backends/reference/backend.mk | 3 | ||||
-rw-r--r-- | src/backends/reference/test/RefLayerTests.cpp | 94 | ||||
-rw-r--r-- | src/backends/reference/workloads/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/backends/reference/workloads/RefResizeBilinearWorkload.cpp | 4 | ||||
-rw-r--r-- | src/backends/reference/workloads/RefResizeWorkload.cpp | 35 | ||||
-rw-r--r-- | src/backends/reference/workloads/RefResizeWorkload.hpp | 21 | ||||
-rw-r--r-- | src/backends/reference/workloads/RefWorkloads.hpp | 3 | ||||
-rw-r--r-- | src/backends/reference/workloads/Resize.cpp (renamed from src/backends/reference/workloads/ResizeBilinear.cpp) | 66 | ||||
-rw-r--r-- | src/backends/reference/workloads/Resize.hpp | 23 | ||||
-rw-r--r-- | src/backends/reference/workloads/ResizeBilinear.hpp | 22 |
14 files changed, 275 insertions, 55 deletions
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp index 429993a55f..b563badca5 100644 --- a/src/backends/reference/RefLayerSupport.cpp +++ b/src/backends/reference/RefLayerSupport.cpp @@ -1239,11 +1239,11 @@ bool RefLayerSupport::IsResizeBilinearSupported(const TensorInfo& input, { bool supported = true; std::array<DataType,3> supportedTypes = - { - DataType::Float32, - DataType::QuantisedAsymm8, - DataType::QuantisedSymm16 - }; + { + DataType::Float32, + DataType::QuantisedAsymm8, + DataType::QuantisedSymm16 + }; supported &= CheckSupportRule(TypeAnyOf(input, supportedTypes), reasonIfUnsupported, "Reference ResizeBilinear: input type not supported"); @@ -1257,6 +1257,31 @@ bool RefLayerSupport::IsResizeBilinearSupported(const TensorInfo& input, return supported; } +bool RefLayerSupport::IsResizeSupported(const TensorInfo& input, + const TensorInfo& output, + const ResizeDescriptor& descriptor, + Optional<std::string&> reasonIfUnsupported) const +{ + bool supported = true; + std::array<DataType,3> supportedTypes = + { + DataType::Float32, + DataType::QuantisedAsymm8, + DataType::QuantisedSymm16 + }; + + supported &= CheckSupportRule(TypeAnyOf(input, supportedTypes), reasonIfUnsupported, + "Reference Resize: input type not supported"); + + supported &= CheckSupportRule(TypeAnyOf(output, supportedTypes), reasonIfUnsupported, + "Reference Resize: output type not supported"); + + supported &= CheckSupportRule(TypesAreEqual(input, output), reasonIfUnsupported, + "Reference Resize: input and output types not matching"); + + return supported; +} + bool RefLayerSupport::IsRsqrtSupported(const TensorInfo& input, const TensorInfo& output, Optional<std::string&> reasonIfUnsupported) const diff --git a/src/backends/reference/RefLayerSupport.hpp b/src/backends/reference/RefLayerSupport.hpp index 9c397fe66b..22b007b378 100644 --- a/src/backends/reference/RefLayerSupport.hpp +++ b/src/backends/reference/RefLayerSupport.hpp @@ -222,6 +222,11 @@ public: const TensorInfo& output, Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const override; + bool IsResizeSupported(const TensorInfo& input, + const TensorInfo& output, + const ResizeDescriptor& descriptor, + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const override; + bool IsRsqrtSupported(const TensorInfo& input, const TensorInfo& output, Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const override; diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp index d906f93a38..95a44193de 100644 --- a/src/backends/reference/RefWorkloadFactory.cpp +++ b/src/backends/reference/RefWorkloadFactory.cpp @@ -239,6 +239,16 @@ std::unique_ptr<armnn::IWorkload> RefWorkloadFactory::CreateMemCopy(const MemCop return std::make_unique<CopyMemGenericWorkload>(descriptor, info); } +std::unique_ptr<IWorkload> RefWorkloadFactory::CreateResize(const ResizeQueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + if (IsFloat16(info)) + { + return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info); + } + return std::make_unique<RefResizeWorkload>(descriptor, info); +} + std::unique_ptr<IWorkload> RefWorkloadFactory::CreateResizeBilinear(const ResizeBilinearQueueDescriptor& descriptor, const WorkloadInfo& info) const { diff --git a/src/backends/reference/RefWorkloadFactory.hpp b/src/backends/reference/RefWorkloadFactory.hpp index 44cb079ea7..1a40259eb9 100644 --- a/src/backends/reference/RefWorkloadFactory.hpp +++ b/src/backends/reference/RefWorkloadFactory.hpp @@ -106,6 +106,9 @@ public: std::unique_ptr<IWorkload> CreateMemCopy(const MemCopyQueueDescriptor& descriptor, const WorkloadInfo& info) const override; + std::unique_ptr<IWorkload> CreateResize(const ResizeQueueDescriptor& descriptor, + const WorkloadInfo& info) const override; + std::unique_ptr<IWorkload> CreateResizeBilinear(const ResizeBilinearQueueDescriptor& descriptor, const WorkloadInfo& info) const override; diff --git a/src/backends/reference/backend.mk b/src/backends/reference/backend.mk index 6fb17b563f..7995654663 100644 --- a/src/backends/reference/backend.mk +++ b/src/backends/reference/backend.mk @@ -54,6 +54,7 @@ BACKEND_SOURCES := \ workloads/RefQuantizeWorkload.cpp \ workloads/RefReshapeWorkload.cpp \ workloads/RefResizeBilinearWorkload.cpp \ + workloads/RefResizeWorkload.cpp \ workloads/RefRsqrtWorkload.cpp \ workloads/RefSoftmaxWorkload.cpp \ workloads/RefSpaceToBatchNdWorkload.cpp \ @@ -61,7 +62,7 @@ BACKEND_SOURCES := \ workloads/RefStridedSliceWorkload.cpp \ workloads/RefSplitterWorkload.cpp \ workloads/RefTransposeConvolution2dWorkload.cpp \ - workloads/ResizeBilinear.cpp \ + workloads/Resize.cpp \ workloads/Rsqrt.cpp \ workloads/SpaceToBatchNd.cpp \ workloads/SpaceToDepth.cpp \ diff --git a/src/backends/reference/test/RefLayerTests.cpp b/src/backends/reference/test/RefLayerTests.cpp index 80d53190b6..7797f17a22 100644 --- a/src/backends/reference/test/RefLayerTests.cpp +++ b/src/backends/reference/test/RefLayerTests.cpp @@ -607,6 +607,100 @@ ARMNN_AUTO_TEST_CASE(ResizeBilinearMagUint16Nhwc, ResizeBilinearNopTest<armnn::DataType::QuantisedSymm16>, armnn::DataLayout::NHWC) +// Resize NearestNeighbor - NCHW +ARMNN_AUTO_TEST_CASE(SimpleResizeNearestNeighbor, + SimpleResizeNearestNeighborTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(SimpleResizeNearestNeighborUint8, + SimpleResizeNearestNeighborTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(SimpleResizeNearestNeighborUint16, + SimpleResizeNearestNeighborTest<armnn::DataType::QuantisedSymm16>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborNop, + ResizeNearestNeighborNopTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborNopUint8, + ResizeNearestNeighborNopTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(esizeNearestNeighborNopUint16, + SimpleResizeNearestNeighborTest<armnn::DataType::QuantisedSymm16>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborSqMin, + ResizeNearestNeighborSqMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborSqMinUint8, + ResizeNearestNeighborSqMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborSqMinUint16, + SimpleResizeNearestNeighborTest<armnn::DataType::QuantisedSymm16>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMin, + ResizeNearestNeighborMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMinUint8, + ResizeNearestNeighborMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMinUint16, + SimpleResizeNearestNeighborTest<armnn::DataType::QuantisedSymm16>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMag, + ResizeNearestNeighborMagTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMagUint8, + ResizeNearestNeighborMagTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMagUint16, + SimpleResizeNearestNeighborTest<armnn::DataType::QuantisedSymm16>, + armnn::DataLayout::NCHW) + +// Resize NearestNeighbor - NHWC +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborNopNhwc, + ResizeNearestNeighborNopTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborNopUint8Nhwc, + ResizeNearestNeighborNopTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborNopUint16Nhwc, + ResizeNearestNeighborNopTest<armnn::DataType::QuantisedSymm16>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(SimpleResizeNearestNeighborNhwc, + SimpleResizeNearestNeighborTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(SimpleResizeNearestNeighborUint8Nhwc, + SimpleResizeNearestNeighborTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(SimpleResizeNearestNeighborUint16Nhwc, + ResizeNearestNeighborNopTest<armnn::DataType::QuantisedSymm16>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborSqMinNhwc, + ResizeNearestNeighborSqMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborSqMinUint8Nhwc, + ResizeNearestNeighborSqMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborSqMinUint16Nhwc, + ResizeNearestNeighborNopTest<armnn::DataType::QuantisedSymm16>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMinNhwc, + ResizeNearestNeighborMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMinUint8Nhwc, + ResizeNearestNeighborMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMinUint16Nhwc, + ResizeNearestNeighborNopTest<armnn::DataType::QuantisedSymm16>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMagNhwc, + ResizeNearestNeighborMagTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMagUint8Nhwc, + ResizeNearestNeighborMagTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMagUint16Nhwc, + ResizeNearestNeighborNopTest<armnn::DataType::QuantisedSymm16>, + armnn::DataLayout::NHWC) + // Fake Quantization ARMNN_AUTO_TEST_CASE(FakeQuantization, FakeQuantizationTest) diff --git a/src/backends/reference/workloads/CMakeLists.txt b/src/backends/reference/workloads/CMakeLists.txt index 9be245b1a7..3c0af01c00 100644 --- a/src/backends/reference/workloads/CMakeLists.txt +++ b/src/backends/reference/workloads/CMakeLists.txt @@ -96,6 +96,8 @@ list(APPEND armnnRefBackendWorkloads_sources RefReshapeWorkload.hpp RefResizeBilinearWorkload.cpp RefResizeBilinearWorkload.hpp + RefResizeWorkload.cpp + RefResizeWorkload.hpp RefRsqrtWorkload.cpp RefRsqrtWorkload.hpp RefSoftmaxWorkload.cpp @@ -112,8 +114,8 @@ list(APPEND armnnRefBackendWorkloads_sources RefTransposeConvolution2dWorkload.hpp RefWorkloads.hpp RefWorkloadUtils.hpp - ResizeBilinear.cpp - ResizeBilinear.hpp + Resize.cpp + Resize.hpp Rsqrt.cpp Rsqrt.hpp Softmax.cpp diff --git a/src/backends/reference/workloads/RefResizeBilinearWorkload.cpp b/src/backends/reference/workloads/RefResizeBilinearWorkload.cpp index 03fcec25fe..fc27c0f93d 100644 --- a/src/backends/reference/workloads/RefResizeBilinearWorkload.cpp +++ b/src/backends/reference/workloads/RefResizeBilinearWorkload.cpp @@ -6,7 +6,7 @@ #include "RefResizeBilinearWorkload.hpp" #include "RefWorkloadUtils.hpp" -#include "ResizeBilinear.hpp" +#include "Resize.hpp" #include "BaseIterator.hpp" #include "Profiling.hpp" @@ -29,7 +29,7 @@ void RefResizeBilinearWorkload::Execute() const std::unique_ptr<Encoder<float>> encoderPtr = MakeEncoder<float>(outputInfo, m_Data.m_Outputs[0]->Map()); Encoder<float> &encoder = *encoderPtr; - ResizeBilinear(decoder, inputInfo, encoder, outputInfo, m_Data.m_Parameters.m_DataLayout); + Resize(decoder, inputInfo, encoder, outputInfo, m_Data.m_Parameters.m_DataLayout, armnn::ResizeMethod::Bilinear); } } //namespace armnn diff --git a/src/backends/reference/workloads/RefResizeWorkload.cpp b/src/backends/reference/workloads/RefResizeWorkload.cpp new file mode 100644 index 0000000000..26225f8823 --- /dev/null +++ b/src/backends/reference/workloads/RefResizeWorkload.cpp @@ -0,0 +1,35 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "RefResizeWorkload.hpp" + +#include "RefWorkloadUtils.hpp" +#include "Resize.hpp" +#include "BaseIterator.hpp" +#include "Profiling.hpp" + +#include "BaseIterator.hpp" +#include "Decoders.hpp" +#include "Encoders.hpp" + +namespace armnn +{ + +void RefResizeWorkload::Execute() const +{ + ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefResizeWorkload_Execute"); + + const TensorInfo& inputInfo = GetTensorInfo(m_Data.m_Inputs[0]); + const TensorInfo& outputInfo = GetTensorInfo(m_Data.m_Outputs[0]); + + std::unique_ptr<Decoder<float>> decoderPtr = MakeDecoder<float>(inputInfo, m_Data.m_Inputs[0]->Map()); + Decoder<float> &decoder = *decoderPtr; + std::unique_ptr<Encoder<float>> encoderPtr = MakeEncoder<float>(outputInfo, m_Data.m_Outputs[0]->Map()); + Encoder<float> &encoder = *encoderPtr; + + Resize(decoder, inputInfo, encoder, outputInfo, m_Data.m_Parameters.m_DataLayout, m_Data.m_Parameters.m_Method); +} + +} //namespace armnn diff --git a/src/backends/reference/workloads/RefResizeWorkload.hpp b/src/backends/reference/workloads/RefResizeWorkload.hpp new file mode 100644 index 0000000000..1ddfcdfba8 --- /dev/null +++ b/src/backends/reference/workloads/RefResizeWorkload.hpp @@ -0,0 +1,21 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include <backendsCommon/Workload.hpp> +#include <backendsCommon/WorkloadData.hpp> + +namespace armnn +{ + +class RefResizeWorkload : public BaseWorkload<ResizeQueueDescriptor> +{ +public: + using BaseWorkload<ResizeQueueDescriptor>::BaseWorkload; + virtual void Execute() const override; +}; + +} //namespace armnn diff --git a/src/backends/reference/workloads/RefWorkloads.hpp b/src/backends/reference/workloads/RefWorkloads.hpp index 3a094c8a32..4bdf05daa8 100644 --- a/src/backends/reference/workloads/RefWorkloads.hpp +++ b/src/backends/reference/workloads/RefWorkloads.hpp @@ -40,6 +40,7 @@ #include "RefPreluWorkload.hpp" #include "RefQuantizeWorkload.hpp" #include "RefResizeBilinearWorkload.hpp" +#include "RefResizeWorkload.hpp" #include "RefRsqrtWorkload.hpp" #include "RefReshapeWorkload.hpp" #include "RefSplitterWorkload.hpp" @@ -49,7 +50,7 @@ #include "RefSpaceToDepthWorkload.hpp" #include "RefTransposeConvolution2dWorkload.hpp" #include "RefWorkloadUtils.hpp" -#include "ResizeBilinear.hpp" +#include "Resize.hpp" #include "Softmax.hpp" #include "Splitter.hpp" #include "TensorBufferArrayView.hpp"
\ No newline at end of file diff --git a/src/backends/reference/workloads/ResizeBilinear.cpp b/src/backends/reference/workloads/Resize.cpp index 70a051492a..0e0bdd7597 100644 --- a/src/backends/reference/workloads/ResizeBilinear.cpp +++ b/src/backends/reference/workloads/Resize.cpp @@ -3,7 +3,7 @@ // SPDX-License-Identifier: MIT // -#include "ResizeBilinear.hpp" +#include "Resize.hpp" #include "TensorBufferArrayView.hpp" @@ -25,13 +25,14 @@ inline float Lerp(float a, float b, float w) return w * b + (1.f - w) * a; } -} +}// anonymous namespace -void ResizeBilinear(Decoder<float>& in, - const TensorInfo& inputInfo, - Encoder<float>& out, - const TensorInfo& outputInfo, - DataLayoutIndexed dataLayout) +void Resize(Decoder<float>& in, + const TensorInfo& inputInfo, + Encoder<float>& out, + const TensorInfo& outputInfo, + DataLayoutIndexed dataLayout, + armnn::ResizeMethod resizeMethod) { // We follow the definition of TensorFlow and AndroidNN: the top-left corner of a texel in the output // image is projected into the input image to figure out the interpolants and weights. Note that this @@ -83,22 +84,43 @@ void ResizeBilinear(Decoder<float>& in, const unsigned int x1 = std::min(x0 + 1, inputWidth - 1u); const unsigned int y1 = std::min(y0 + 1, inputHeight - 1u); - // Interpolation - in[dataLayout.GetIndex(inputShape, n, c, y0, x0)]; - float input1 = in.Get(); - in[dataLayout.GetIndex(inputShape, n, c, y0, x1)]; - float input2 = in.Get(); - in[dataLayout.GetIndex(inputShape, n, c, y1, x0)]; - float input3 = in.Get(); - in[dataLayout.GetIndex(inputShape, n, c, y1, x1)]; - float input4 = in.Get(); - - const float ly0 = Lerp(input1, input2, xw); // lerp along row y0. - const float ly1 = Lerp(input3, input4, xw); // lerp along row y1. - const float l = Lerp(ly0, ly1, yw); - + float interpolatedValue; + switch (resizeMethod) + { + case armnn::ResizeMethod::Bilinear: + { + in[dataLayout.GetIndex(inputShape, n, c, y0, x0)]; + float input1 = in.Get(); + in[dataLayout.GetIndex(inputShape, n, c, y0, x1)]; + float input2 = in.Get(); + in[dataLayout.GetIndex(inputShape, n, c, y1, x0)]; + float input3 = in.Get(); + in[dataLayout.GetIndex(inputShape, n, c, y1, x1)]; + float input4 = in.Get(); + + const float ly0 = Lerp(input1, input2, xw); // lerp along row y0. + const float ly1 = Lerp(input3, input4, xw); // lerp along row y1. + interpolatedValue = Lerp(ly0, ly1, yw); + break; + } + case armnn::ResizeMethod::NearestNeighbor: + default: + { + auto distance0 = std::sqrt(pow(fix - boost::numeric_cast<float>(x0), 2) + + pow(fiy - boost::numeric_cast<float>(y0), 2)); + auto distance1 = std::sqrt(pow(fix - boost::numeric_cast<float>(x1), 2) + + pow(fiy - boost::numeric_cast<float>(y1), 2)); + + unsigned int xNearest = distance0 <= distance1? x0 : x1; + unsigned int yNearest = distance0 <= distance1? y0 : y1; + + in[dataLayout.GetIndex(inputShape, n, c, yNearest, xNearest)]; + interpolatedValue = in.Get(); + break; + } + } out[dataLayout.GetIndex(outputShape, n, c, y, x)]; - out.Set(l); + out.Set(interpolatedValue); } } } diff --git a/src/backends/reference/workloads/Resize.hpp b/src/backends/reference/workloads/Resize.hpp new file mode 100644 index 0000000000..8bd8999e5d --- /dev/null +++ b/src/backends/reference/workloads/Resize.hpp @@ -0,0 +1,23 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include "BaseIterator.hpp" +#include <armnn/Tensor.hpp> + +#include <DataLayoutIndexed.hpp> + +namespace armnn +{ + +void Resize(Decoder<float>& in, + const TensorInfo& inputInfo, + Encoder<float>& out, + const TensorInfo& outputInfo, + armnnUtils::DataLayoutIndexed dataLayout = DataLayout::NCHW, + ResizeMethod resizeMethod = ResizeMethod::NearestNeighbor); + +} //namespace armnn diff --git a/src/backends/reference/workloads/ResizeBilinear.hpp b/src/backends/reference/workloads/ResizeBilinear.hpp deleted file mode 100644 index ad2e487f5a..0000000000 --- a/src/backends/reference/workloads/ResizeBilinear.hpp +++ /dev/null @@ -1,22 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include "BaseIterator.hpp" -#include <armnn/Tensor.hpp> - -#include <DataLayoutIndexed.hpp> - -namespace armnn -{ - -void ResizeBilinear(Decoder<float>& in, - const TensorInfo& inputInfo, - Encoder<float>& out, - const TensorInfo& outputInfo, - armnnUtils::DataLayoutIndexed dataLayout = DataLayout::NCHW); - -} //namespace armnn |