22 using namespace armnn;
27 IConnectableLayer* depthToSpace = network->AddDepthToSpaceLayer(descriptor,
"depthToSpace");
30 Connect(input, depthToSpace, inputInfo, 0, 0);
31 Connect(depthToSpace, output, outputInfo, 0, 0);
36 template<armnn::DataType ArmnnType,
typename T = armnn::ResolveType<ArmnnType>>
37 void DepthToSpaceEndToEndImpl(
const std::vector<armnn::BackendId>& backends,
41 const std::vector<float>& floatInputData,
42 const std::vector<float>& floatExpectedOutputData)
44 using namespace armnn;
46 TensorInfo inputInfo(nhwcInputShape, ArmnnType);
47 TensorInfo outputInfo(nhwcOutputShape, ArmnnType);
49 constexpr
float qScale = 0.25f;
50 constexpr int32_t qOffset = 128;
53 if (IsQuantizedType<T>())
61 std::vector<T> inputData = armnnUtils::QuantizedVector<T>(floatInputData, qScale, qOffset);
62 std::vector<T> expectedOutputData = armnnUtils::QuantizedVector<T>(floatExpectedOutputData, qScale, qOffset);
71 INetworkPtr network = CreateDepthToSpaceNetwork(inputInfo, outputInfo, descriptor);
72 EndToEndLayerTestImpl<ArmnnType, ArmnnType>(std::move(network),
74 { { 0, expectedOutputData } },
80 template<armnn::DataType ArmnnType>
84 using namespace armnn;
89 std::vector<float> inputData =
93 9.f, 10.f, 11.f, 12.f,
94 13.f, 14.f, 15.f, 16.f,
96 17.f, 18.f, 19.f, 20.f,
97 21.f, 22.f, 23.f, 24.f,
98 25.f, 26.f, 27.f, 28.f,
99 29.f, 30.f, 31.f, 32.f
102 std::vector<float> expectedOutputData =
106 9.f, 10.f, 13.f, 14.f,
107 11.f, 12.f, 15.f, 16.f,
109 17.f, 18.f, 21.f, 22.f,
110 19.f, 20.f, 23.f, 24.f,
111 25.f, 26.f, 29.f, 30.f,
112 27.f, 28.f, 31.f, 32.f
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
SpaceToDepthDescriptor DepthToSpaceDescriptor
A DepthToSpaceDescriptor for the DepthToSpaceLayer.
void DepthToSpaceEndToEnd(const std::vector< armnn::BackendId > &defaultBackends, armnn::DataLayout dataLayout)
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
void SetQuantizationScale(float scale)
static INetworkPtr Create()
void PermuteTensorNhwcToNchw(armnn::TensorInfo &tensorInfo, std::vector< T > &tensorData)
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
void Connect(armnn::IConnectableLayer *from, armnn::IConnectableLayer *to, const armnn::TensorInfo &tensorInfo, unsigned int fromIndex, unsigned int toIndex)
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
void SetQuantizationOffset(int32_t offset)
std::vector< armnn::BackendId > defaultBackends