1 // 2 // Copyright © 2017 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include <armnnTestUtils/LayerTestResult.hpp> 9 10 #include <ResolveType.hpp> 11 12 #include <armnn/Types.hpp> 13 14 #include <armnn/backends/IBackendInternal.hpp> 15 #include <armnn/backends/WorkloadFactory.hpp> 16 17 // Bilinear 18 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 19 LayerTestResult<T, 4> ResizeBilinearNopTest( 20 armnn::IWorkloadFactory& workloadFactory, 21 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 22 const armnn::ITensorHandleFactory& tensorHandleFactory, 23 const armnn::DataLayout dataLayout); 24 25 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 26 LayerTestResult<T, 4> SimpleResizeBilinearTest( 27 armnn::IWorkloadFactory& workloadFactory, 28 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 29 const armnn::ITensorHandleFactory& tensorHandleFactory, 30 const armnn::DataLayout dataLayout); 31 32 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 33 LayerTestResult<T, 4> ResizeBilinearSqMinTest( 34 armnn::IWorkloadFactory& workloadFactory, 35 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 36 const armnn::ITensorHandleFactory& tensorHandleFactory, 37 const armnn::DataLayout dataLayout); 38 39 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 40 LayerTestResult<T, 4> ResizeBilinearMinTest( 41 armnn::IWorkloadFactory& workloadFactory, 42 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 43 const armnn::ITensorHandleFactory& tensorHandleFactory, 44 const armnn::DataLayout dataLayout); 45 46 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 47 LayerTestResult<T, 4> ResizeBilinearMagTest( 48 armnn::IWorkloadFactory& workloadFactory, 49 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 50 const armnn::ITensorHandleFactory& tensorHandleFactory, 51 const armnn::DataLayout dataLayout); 52 53 // NearestNeighbor 54 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 55 LayerTestResult<T, 4> ResizeNearestNeighborNopTest( 56 armnn::IWorkloadFactory& workloadFactory, 57 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 58 const armnn::ITensorHandleFactory& tensorHandleFactory, 59 const armnn::DataLayout dataLayout); 60 61 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 62 LayerTestResult<T, 4> SimpleResizeNearestNeighborTest( 63 armnn::IWorkloadFactory& workloadFactory, 64 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 65 const armnn::ITensorHandleFactory& tensorHandleFactory, 66 const armnn::DataLayout dataLayout); 67 68 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 69 LayerTestResult<T, 4> ResizeNearestNeighborSqMinTest( 70 armnn::IWorkloadFactory& workloadFactory, 71 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 72 const armnn::ITensorHandleFactory& tensorHandleFactory, 73 const armnn::DataLayout dataLayout); 74 75 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 76 LayerTestResult<T, 4> ResizeNearestNeighborMinTest( 77 armnn::IWorkloadFactory& workloadFactory, 78 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 79 const armnn::ITensorHandleFactory& tensorHandleFactory, 80 const armnn::DataLayout dataLayout); 81 82 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 83 LayerTestResult<T, 4> ResizeNearestNeighborMagTest( 84 armnn::IWorkloadFactory& workloadFactory, 85 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 86 const armnn::ITensorHandleFactory& tensorHandleFactory, 87 const armnn::DataLayout dataLayout, 88 float inQuantScale, 89 int32_t inQuantOffset, 90 float outQuantScale, 91 int32_t outQuantOffset); 92 93 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 94 LayerTestResult<T, 4> HalfPixelCentersResizeBilinearTest( 95 armnn::IWorkloadFactory& workloadFactory, 96 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 97 const armnn::ITensorHandleFactory& tensorHandleFactory, 98 const armnn::DataLayout dataLayout); 99 100 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 101 LayerTestResult<T, 4> AlignCornersResizeBilinearTest( 102 armnn::IWorkloadFactory& workloadFactory, 103 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 104 const armnn::ITensorHandleFactory& tensorHandleFactory, 105 const armnn::DataLayout dataLayout); 106 107 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 108 LayerTestResult<T, 4> HalfPixelCentersResizeNearestNeighbourTest( 109 armnn::IWorkloadFactory& workloadFactory, 110 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 111 const armnn::ITensorHandleFactory& tensorHandleFactory, 112 const armnn::DataLayout dataLayout); 113 114 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> 115 LayerTestResult<T, 4> AlignCornersResizeNearestNeighbourTest( 116 armnn::IWorkloadFactory& workloadFactory, 117 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, 118 const armnn::ITensorHandleFactory& tensorHandleFactory, 119 const armnn::DataLayout dataLayout);