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);
48 TensorInfo outputInfo(nhwcOutputShape, ArmnnType);
50 constexpr
float qScale = 0.25f;
51 constexpr int32_t qOffset = 128;
54 if (IsQuantizedType<T>())
62 std::vector<T> inputData = armnnUtils::QuantizedVector<T>(floatInputData, qScale, qOffset);
63 std::vector<T> expectedOutputData = armnnUtils::QuantizedVector<T>(floatExpectedOutputData, qScale, qOffset);
72 INetworkPtr network = CreateDepthToSpaceNetwork(inputInfo, outputInfo, descriptor);
73 EndToEndLayerTestImpl<ArmnnType, ArmnnType>(std::move(network),
75 { { 0, expectedOutputData } },
81 template<armnn::DataType ArmnnType>
85 using namespace armnn;
90 std::vector<float> inputData =
94 9.f, 10.f, 11.f, 12.f,
95 13.f, 14.f, 15.f, 16.f,
97 17.f, 18.f, 19.f, 20.f,
98 21.f, 22.f, 23.f, 24.f,
99 25.f, 26.f, 27.f, 28.f,
100 29.f, 30.f, 31.f, 32.f
103 std::vector<float> expectedOutputData =
107 9.f, 10.f, 13.f, 14.f,
108 11.f, 12.f, 15.f, 16.f,
110 17.f, 18.f, 21.f, 22.f,
111 19.f, 20.f, 23.f, 24.f,
112 25.f, 26.f, 29.f, 30.f,
113 27.f, 28.f, 31.f, 32.f
116 DepthToSpaceEndToEndImpl<ArmnnType>(defaultBackends,
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
void DepthToSpaceEndToEnd(const std::vector< armnn::BackendId > &defaultBackends, armnn::DataLayout dataLayout)
Copyright (c) 2021 ARM Limited and Contributors.
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
void SetQuantizationScale(float scale)
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
void SetConstant(const bool IsConstant=true)
Marks the data corresponding to this tensor info as constant.
void SetQuantizationOffset(int32_t offset)
void Connect(armnn::IConnectableLayer *from, armnn::IConnectableLayer *to, const armnn::TensorInfo &tensorInfo, unsigned int fromIndex, unsigned int toIndex)
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
static INetworkPtr Create(NetworkOptions networkOptions={})
SpaceToDepthDescriptor DepthToSpaceDescriptor
A DepthToSpaceDescriptor for the DepthToSpaceLayer.
void PermuteTensorNhwcToNchw(armnn::TensorInfo &tensorInfo, std::vector< T > &tensorData)