blob: b70ae85b8fcce40cf55fa0a1e343cd618ea76b75 [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,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000022 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010023
24template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
25LayerTestResult<T, 4> SimpleResizeBilinearTest(
26 armnn::IWorkloadFactory& workloadFactory,
27 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000028 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010029
30template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
31LayerTestResult<T, 4> ResizeBilinearSqMinTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000032 armnn::IWorkloadFactory& workloadFactory,
33 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
34 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010035
36template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
37LayerTestResult<T, 4> ResizeBilinearMinTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000038 armnn::IWorkloadFactory& workloadFactory,
39 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
40 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010041
42template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
43LayerTestResult<T, 4> ResizeBilinearMagTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000044 armnn::IWorkloadFactory& workloadFactory,
45 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
46 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010047
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000048// NearestNeighbor
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010049template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
50LayerTestResult<T, 4> ResizeNearestNeighborNopTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000051 armnn::IWorkloadFactory& workloadFactory,
52 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
53 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010054
55template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
56LayerTestResult<T, 4> SimpleResizeNearestNeighborTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000057 armnn::IWorkloadFactory& workloadFactory,
58 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
59 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> ResizeNearestNeighborSqMinTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000063 armnn::IWorkloadFactory& workloadFactory,
64 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
65 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010066
67template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
68LayerTestResult<T, 4> ResizeNearestNeighborMinTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000069 armnn::IWorkloadFactory& workloadFactory,
70 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
71 const armnn::DataLayout dataLayout);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010072
73template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
74LayerTestResult<T, 4> ResizeNearestNeighborMagTest(
Aron Virginas-Tarb3670b12019-10-28 16:06:50 +000075 armnn::IWorkloadFactory& workloadFactory,
76 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
77 const armnn::DataLayout dataLayout,
78 float inQuantScale,
79 int32_t inQuantOffset,
80 float outQuantScale,
81 int32_t outQuantOffset);
David Monahanab219752020-06-19 16:43:48 +010082
83template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
84LayerTestResult<T, 4> HalfPixelCentersResizeBilinearTest(
85 armnn::IWorkloadFactory& workloadFactory,
86 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
87 const armnn::DataLayout dataLayout);
88
89template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
90LayerTestResult<T, 4> AlignCornersResizeBilinearTest(
91 armnn::IWorkloadFactory& workloadFactory,
92 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
93 const armnn::DataLayout dataLayout);
94
95template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
96LayerTestResult<T, 4> HalfPixelCentersResizeNearestNeighbourTest(
97 armnn::IWorkloadFactory& workloadFactory,
98 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
99 const armnn::DataLayout dataLayout);
100
101template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
102LayerTestResult<T, 4> AlignCornersResizeNearestNeighbourTest(
103 armnn::IWorkloadFactory& workloadFactory,
104 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
105 const armnn::DataLayout dataLayout);