blob: ce7d41910c424b29d44a97d60aeb3fac2d9bf48f [file] [log] [blame]
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "LayerTestResult.hpp"
9
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010010#include <ResolveType.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010011
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000012#include <armnn/Types.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010013
Matteo Martincighe5b8eb92019-11-28 15:45:42 +000014#include <armnn/backends/IBackendInternal.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010015#include <backendsCommon/WorkloadFactory.hpp>
16
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000017// Bilinear
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010018template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
19LayerTestResult<T, 4> ResizeBilinearNopTest(
20 armnn::IWorkloadFactory& workloadFactory,
21 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010022 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000023 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010024
25template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
26LayerTestResult<T, 4> SimpleResizeBilinearTest(
27 armnn::IWorkloadFactory& workloadFactory,
28 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010029 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000030 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010031
32template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
33LayerTestResult<T, 4> ResizeBilinearSqMinTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000034 armnn::IWorkloadFactory& workloadFactory,
35 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010036 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000037 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010038
39template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
40LayerTestResult<T, 4> ResizeBilinearMinTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000041 armnn::IWorkloadFactory& workloadFactory,
42 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010043 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000044 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010045
46template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
47LayerTestResult<T, 4> ResizeBilinearMagTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000048 armnn::IWorkloadFactory& workloadFactory,
49 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010050 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000051 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010052
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000053// NearestNeighbor
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010054template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
55LayerTestResult<T, 4> ResizeNearestNeighborNopTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000056 armnn::IWorkloadFactory& workloadFactory,
57 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010058 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000059 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010060
61template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
62LayerTestResult<T, 4> SimpleResizeNearestNeighborTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000063 armnn::IWorkloadFactory& workloadFactory,
64 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010065 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000066 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010067
68template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
69LayerTestResult<T, 4> ResizeNearestNeighborSqMinTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000070 armnn::IWorkloadFactory& workloadFactory,
71 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010072 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000073 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010074
75template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
76LayerTestResult<T, 4> ResizeNearestNeighborMinTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000077 armnn::IWorkloadFactory& workloadFactory,
78 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010079 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000080 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010081
82template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
83LayerTestResult<T, 4> ResizeNearestNeighborMagTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000084 armnn::IWorkloadFactory& workloadFactory,
85 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010086 const armnn::ITensorHandleFactory& tensorHandleFactory,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000087 const armnn::DataLayout dataLayout,
88 float inQuantScale,
89 int32_t inQuantOffset,
90 float outQuantScale,
91 int32_t outQuantOffset);
David Monahanab219752020-06-19 16:43:48 +010092
93template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
94LayerTestResult<T, 4> HalfPixelCentersResizeBilinearTest(
95 armnn::IWorkloadFactory& workloadFactory,
96 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +010097 const armnn::ITensorHandleFactory& tensorHandleFactory,
David Monahanab219752020-06-19 16:43:48 +010098 const armnn::DataLayout dataLayout);
99
100template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
101LayerTestResult<T, 4> AlignCornersResizeBilinearTest(
102 armnn::IWorkloadFactory& workloadFactory,
103 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +0100104 const armnn::ITensorHandleFactory& tensorHandleFactory,
David Monahanab219752020-06-19 16:43:48 +0100105 const armnn::DataLayout dataLayout);
106
107template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
108LayerTestResult<T, 4> HalfPixelCentersResizeNearestNeighbourTest(
109 armnn::IWorkloadFactory& workloadFactory,
110 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +0100111 const armnn::ITensorHandleFactory& tensorHandleFactory,
David Monahanab219752020-06-19 16:43:48 +0100112 const armnn::DataLayout dataLayout);
113
114template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
115LayerTestResult<T, 4> AlignCornersResizeNearestNeighbourTest(
116 armnn::IWorkloadFactory& workloadFactory,
117 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Finn Williamsec36d3e2020-08-28 13:17:05 +0100118 const armnn::ITensorHandleFactory& tensorHandleFactory,
David Monahanab219752020-06-19 16:43:48 +0100119 const armnn::DataLayout dataLayout);