ArmNN
 22.08
TestNameAndDescriptorLayerVisitor.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
6 #include "Network.hpp"
7 
8 #include <armnn/Exceptions.hpp>
9 
10 #include <doctest/doctest.h>
11 
12 namespace
13 {
14 
15 #define TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(name, testName) \
16 TEST_CASE(#testName) \
17 { \
18  const char* layerName = "name##Layer"; \
19  armnn::name##Descriptor descriptor = GetDescriptor<armnn::name##Descriptor>(); \
20  Test##name##LayerVisitor visitor(descriptor, layerName); \
21  armnn::NetworkImpl net; \
22  armnn::IConnectableLayer *const layer = net.Add##name##Layer(descriptor, layerName); \
23  layer->ExecuteStrategy(visitor); \
24 }
25 
26 #define TEST_CASE_CHECK_LAYER_VISITOR_NAME_NULLPTR_AND_DESCRIPTOR(name, testName) \
27 TEST_CASE(#testName) \
28 { \
29  armnn::name##Descriptor descriptor = GetDescriptor<armnn::name##Descriptor>(); \
30  Test##name##LayerVisitor visitor(descriptor); \
31  armnn::NetworkImpl net; \
32  armnn::IConnectableLayer *const layer = net.Add##name##Layer(descriptor); \
33  layer->ExecuteStrategy(visitor); \
34 }
35 
36 template<typename Descriptor> Descriptor GetDescriptor();
37 
38 template<>
39 armnn::ActivationDescriptor GetDescriptor<armnn::ActivationDescriptor>()
40 {
41  armnn::ActivationDescriptor descriptor;
43  descriptor.m_A = 2.0f;
44  descriptor.m_B = 2.0f;
45 
46  return descriptor;
47 }
48 
49 template<>
50 armnn::ArgMinMaxDescriptor GetDescriptor<armnn::ArgMinMaxDescriptor>()
51 {
52  armnn::ArgMinMaxDescriptor descriptor;
54  descriptor.m_Axis = 1;
55 
56  return descriptor;
57 }
58 
59 template<>
60 armnn::BatchToSpaceNdDescriptor GetDescriptor<armnn::BatchToSpaceNdDescriptor>()
61 {
62  return armnn::BatchToSpaceNdDescriptor({ 1, 1 }, {{ 0, 0 }, { 0, 0 }});
63 }
64 
65 template<>
66 armnn::ComparisonDescriptor GetDescriptor<armnn::ComparisonDescriptor>()
67 {
69 }
70 
71 template<>
72 armnn::ConcatDescriptor GetDescriptor<armnn::ConcatDescriptor>()
73 {
74  armnn::ConcatDescriptor descriptor(2, 2);
75  for (unsigned int i = 0u; i < descriptor.GetNumViews(); ++i)
76  {
77  for (unsigned int j = 0u; j < descriptor.GetNumDimensions(); ++j)
78  {
79  descriptor.SetViewOriginCoord(i, j, i);
80  }
81  }
82 
83  return descriptor;
84 }
85 
86 template<>
87 armnn::ElementwiseUnaryDescriptor GetDescriptor<armnn::ElementwiseUnaryDescriptor>()
88 {
90 }
91 
92 template<>
93 armnn::FillDescriptor GetDescriptor<armnn::FillDescriptor>()
94 {
95  return armnn::FillDescriptor(1);
96 }
97 
98 template<>
99 armnn::GatherDescriptor GetDescriptor<armnn::GatherDescriptor>()
100 {
101  return armnn::GatherDescriptor();
102 }
103 
104 template<>
105 armnn::InstanceNormalizationDescriptor GetDescriptor<armnn::InstanceNormalizationDescriptor>()
106 {
108  descriptor.m_Gamma = 1.0f;
109  descriptor.m_Beta = 2.0f;
110  descriptor.m_Eps = 0.0001f;
112 
113  return descriptor;
114 }
115 
116 template<>
117 armnn::L2NormalizationDescriptor GetDescriptor<armnn::L2NormalizationDescriptor>()
118 {
120  descriptor.m_Eps = 0.0001f;
122 
123  return descriptor;
124 }
125 
126 template<>
127 armnn::LogicalBinaryDescriptor GetDescriptor<armnn::LogicalBinaryDescriptor>()
128 {
130 }
131 
132 template<>
133 armnn::MeanDescriptor GetDescriptor<armnn::MeanDescriptor>()
134 {
135  return armnn::MeanDescriptor({ 1, 2, }, true);
136 }
137 
138 template<>
139 armnn::NormalizationDescriptor GetDescriptor<armnn::NormalizationDescriptor>()
140 {
144  descriptor.m_NormSize = 1u;
145  descriptor.m_Alpha = 1.0f;
146  descriptor.m_Beta = 1.0f;
147  descriptor.m_K = 1.0f;
149 
150  return descriptor;
151 }
152 
153 template<>
154 armnn::PadDescriptor GetDescriptor<armnn::PadDescriptor>()
155 {
156  return armnn::PadDescriptor({{ 1, 2 }, { 3, 4 }});
157 }
158 
159 template<>
160 armnn::PermuteDescriptor GetDescriptor<armnn::PermuteDescriptor>()
161 {
162  return armnn::PermuteDescriptor({ 0, 1, 2, 3 });
163 }
164 
165 template<>
166 armnn::Pooling2dDescriptor GetDescriptor<armnn::Pooling2dDescriptor>()
167 {
168  armnn::Pooling2dDescriptor descriptor;
170  descriptor.m_PadLeft = 1u;
171  descriptor.m_PadRight = 1u;
172  descriptor.m_PadTop = 1u;
173  descriptor.m_PadBottom = 1u;
174  descriptor.m_PoolWidth = 1u;
175  descriptor.m_PoolHeight = 1u;
176  descriptor.m_StrideX = 1u;
177  descriptor.m_StrideY = 1u;
181 
182  return descriptor;
183 }
184 
185 template<>
186 armnn::ReshapeDescriptor GetDescriptor<armnn::ReshapeDescriptor>()
187 {
188  return armnn::ReshapeDescriptor({ 1, 2, 3, 4 });
189 }
190 
191 template<>
192 armnn::ResizeDescriptor GetDescriptor<armnn::ResizeDescriptor>()
193 {
194  armnn::ResizeDescriptor descriptor;
195  descriptor.m_TargetHeight = 1u;
196  descriptor.m_TargetWidth = 1u;
198 
199  return descriptor;
200 }
201 
202 template<>
203 armnn::SliceDescriptor GetDescriptor<armnn::SliceDescriptor>()
204 {
205  return armnn::SliceDescriptor({ 1, 1 }, { 2, 2 });
206 }
207 
208 template<>
209 armnn::SoftmaxDescriptor GetDescriptor<armnn::SoftmaxDescriptor>()
210 {
211  armnn::SoftmaxDescriptor descriptor;
212  descriptor.m_Beta = 2.0f;
213  descriptor.m_Axis = -1;
214 
215  return descriptor;
216 }
217 
218 template<>
219 armnn::SpaceToBatchNdDescriptor GetDescriptor<armnn::SpaceToBatchNdDescriptor>()
220 {
221  return armnn::SpaceToBatchNdDescriptor({ 2, 2 }, {{ 1, 1 } , { 1, 1 }});
222 }
223 
224 template<>
225 armnn::SpaceToDepthDescriptor GetDescriptor<armnn::SpaceToDepthDescriptor>()
226 {
228 }
229 
230 template<>
231 armnn::SplitterDescriptor GetDescriptor<armnn::SplitterDescriptor>()
232 {
233  armnn::SplitterDescriptor descriptor(2, 2);
234  for (unsigned int i = 0u; i < descriptor.GetNumViews(); ++i)
235  {
236  for (unsigned int j = 0u; j < descriptor.GetNumDimensions(); ++j)
237  {
238  descriptor.SetViewOriginCoord(i, j, i);
239  descriptor.SetViewSize(i, j, 1);
240  }
241  }
242 
243  return descriptor;
244 }
245 
246 template<>
247 armnn::StackDescriptor GetDescriptor<armnn::StackDescriptor>()
248 {
249  return armnn::StackDescriptor(1, 2, { 2, 2 });
250 }
251 
252 template<>
253 armnn::StridedSliceDescriptor GetDescriptor<armnn::StridedSliceDescriptor>()
254 {
255  armnn::StridedSliceDescriptor descriptor({ 1, 2 }, { 3, 4 }, { 3, 4 });
256  descriptor.m_BeginMask = 1;
257  descriptor.m_EndMask = 1;
258  descriptor.m_ShrinkAxisMask = 1;
259  descriptor.m_EllipsisMask = 1;
260  descriptor.m_NewAxisMask = 1;
261  descriptor.m_DataLayout = armnn::DataLayout::NHWC;
262 
263  return descriptor;
264 }
265 
266 template<>
267 armnn::TransposeDescriptor GetDescriptor<armnn::TransposeDescriptor>()
268 {
269  return armnn::TransposeDescriptor({ 0, 1, 2, 3 });
270 }
271 
272 } // anonymous namespace
273 
274 TEST_SUITE("TestNameAndDescriptorLayerVisitor")
275 {
276 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Activation, CheckAdditionLayerVisitorNameAndDescriptor)
277 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(ArgMinMax, CheckArgMinMaxLayerVisitorNameAndDescriptor)
278 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(DepthToSpace, CheckDepthToSpaceLayerVisitorNameAndDescriptor)
279 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(BatchToSpaceNd, CheckBatchToSpaceNdLayerVisitorNameAndDescriptor)
280 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Comparison, CheckComparisonLayerVisitorNameAndDescriptor)
281 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Concat, CheckConcatLayerVisitorNameAndDescriptor)
282 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(ElementwiseUnary, CheckElementwiseUnaryLayerVisitorNameAndDescriptor)
283 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Fill, CheckFillLayerVisitorNameAndDescriptor)
284 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Gather, CheckGatherLayerVisitorNameAndDescriptor)
286  CheckInstanceNormalizationLayerVisitorNameAndDescriptor)
287 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(L2Normalization, CheckL2NormalizationLayerVisitorNameAndDescriptor)
288 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(LogicalBinary, CheckLogicalBinaruLayerVisitorNameAndDescriptor)
289 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(LogSoftmax, CheckLogSoftmaxLayerVisitorNameAndDescriptor)
290 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Mean, CheckMeanLayerVisitorNameAndDescriptor)
291 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Normalization, CheckNormalizationLayerVisitorNameAndDescriptor)
292 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Pad, CheckPadLayerVisitorNameAndDescriptor)
293 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Permute, CheckPermuteLayerVisitorNameAndDescriptor)
294 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Pooling2d, CheckPooling2dLayerVisitorNameAndDescriptor)
295 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Reshape, CheckReshapeLayerVisitorNameAndDescriptor)
296 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Resize, CheckResizeLayerVisitorNameAndDescriptor)
297 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Slice, CheckSliceLayerVisitorNameAndDescriptor)
298 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Softmax, CheckSoftmaxLayerVisitorNameAndDescriptor)
299 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(SpaceToBatchNd, CheckSpaceToBatchNdLayerVisitorNameAndDescriptor)
300 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(SpaceToDepth, CheckSpaceToDepthLayerVisitorNameAndDescriptor)
301 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Splitter, CheckSplitterLayerVisitorNameAndDescriptor)
302 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Stack, CheckStackLayerVisitorNameAndDescriptor)
303 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(StridedSlice, CheckStridedSliceLayerVisitorNameAndDescriptor)
304 TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(Transpose, CheckTransposeLayerVisitorNameAndDescriptor)
305 
307  CheckAdditionLayerVisitorNameNullptrAndDescriptor)
309  CheckArgMinMaxLayerVisitorNameNullptrAndDescriptor)
311  CheckDepthToSpaceLayerVisitorNameNullptrAndDescriptor)
313  CheckBatchToSpaceNdLayerVisitorNameNullptrAndDescriptor)
315  CheckComparisonLayerVisitorNameNullptrAndDescriptor)
317  CheckConcatLayerVisitorNameNullptrAndDescriptor)
319  CheckElementwiseUnaryLayerVisitorNameNullptrAndDescriptor)
321  CheckFillLayerVisitorNameNullptrAndDescriptor)
323  CheckGatherLayerVisitorNameNullptrAndDescriptor)
325  CheckInstanceNormalizationLayerVisitorNameNullptrAndDescriptor)
327  CheckL2NormalizationLayerVisitorNameNullptrAndDescriptor)
329  CheckLogicalBinaruLayerVisitorNameNullptrAndDescriptor)
331  CheckLogSoftmaxLayerVisitorNameNullptrAndDescriptor)
333  CheckMeanLayerVisitorNameNullptrAndDescriptor)
335  CheckNormalizationLayerVisitorNameNullptrAndDescriptor)
337  CheckPadLayerVisitorNameNullptrAndDescriptor)
339  CheckPermuteLayerVisitorNameNullptrAndDescriptor)
341  CheckPooling2dLayerVisitorNameNullptrAndDescriptor)
343  CheckReshapeLayerVisitorNameNullptrAndDescriptor)
345  CheckResizeLayerVisitorNameNullptrAndDescriptor)
347  CheckSliceLayerVisitorNameNullptrAndDescriptor)
349  CheckSoftmaxLayerVisitorNameNullptrAndDescriptor)
351  CheckSpaceToBatchNdLayerVisitorNameNullptrAndDescriptor)
353  CheckSpaceToDepthLayerVisitorNameNullptrAndDescriptor)
355  CheckSplitterLayerVisitorNameNullptrAndDescriptor)
357  CheckStackLayerVisitorNameNullptrAndDescriptor)
359  CheckStridedSliceLayerVisitorNameNullptrAndDescriptor)
361  CheckTransposeLayerVisitorNameNullptrAndDescriptor)
362 
363 }
float m_Eps
Used to avoid dividing by zero.
A ViewsDescriptor for the SplitterLayer.
uint32_t m_PadBottom
Padding bottom value in the height dimension.
void Slice(const TensorInfo &inputInfo, const SliceDescriptor &descriptor, const void *inputData, void *outputData, unsigned int dataTypeSize)
Definition: Slice.cpp:14
float m_K
Kappa value used for the across channel normalization equation.
int m_Axis
Scalar, defaulted to the last index (-1), specifying the dimension the activation will be performed o...
uint32_t m_PadLeft
Padding left value in the width dimension.
A ReshapeDescriptor for the ReshapeLayer.
void Splitter(const SplitterQueueDescriptor &data, std::vector< ITensorHandle *> inputs, std::vector< ITensorHandle *> outputs)
Definition: Splitter.hpp:17
void Stack(const StackQueueDescriptor &data, std::vector< std::unique_ptr< Decoder< float >>> &inputs, Encoder< float > &output, const TensorInfo &inputInfo, const TensorInfo &outputInfo)
Definition: Stack.cpp:12
#define TEST_CASE_CHECK_LAYER_VISITOR_NAME_AND_DESCRIPTOR(name, testName)
void Fill(Encoder< float > &output, const TensorShape &desiredOutputShape, const float value)
Creates a tensor and fills it with a scalar value.
Definition: Fill.cpp:13
A ComparisonDescriptor for the ComparisonLayer.
Definition: Descriptors.hpp:89
uint32_t m_PoolWidth
Pooling width value.
float m_Alpha
Alpha value for the normalization equation.
float m_Gamma
Gamma, the scale scalar value applied for the normalized tensor. Defaults to 1.0. ...
float m_Beta
Exponentiation value.
PaddingMethod m_PaddingMethod
The padding method to be used. (Exclude, IgnoreValue).
ArgMinMaxFunction m_Function
Specify if the function is to find Min or Max.
Definition: Descriptors.hpp:81
uint32_t m_PadTop
Padding top value in the height dimension.
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
void Transpose(const armnn::TensorShape &dstShape, const armnn::PermutationVector &mappings, const void *src, void *dst, size_t dataTypeSize)
Definition: Transpose.cpp:120
void DepthToSpace(const TensorInfo &inputInfo, const DepthToSpaceDescriptor &descriptor, const void *inputData, void *outputData, unsigned int dataTypeSize)
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
void ArgMinMax(Decoder< float > &in, OUT *out, const TensorInfo &inputTensorInfo, const TensorInfo &outputTensorInfo, ArgMinMaxFunction function, int axis)
Definition: ArgMinMax.cpp:16
int32_t m_BeginMask
Begin mask value.
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
#define TEST_CASE_CHECK_LAYER_VISITOR_NAME_NULLPTR_AND_DESCRIPTOR(name, testName)
NormalizationAlgorithmMethod m_NormMethodType
Normalization method algorithm to use (LocalBrightness, LocalContrast).
A ResizeBilinearDescriptor for the ResizeBilinearLayer.
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
A StackDescriptor for the StackLayer.
uint32_t m_PoolHeight
Pooling height value.
A PadDescriptor for the PadLayer.
void Permute(const armnn::TensorShape &dstShape, const armnn::PermutationVector &mappings, const void *src, void *dst, size_t dataTypeSize)
Definition: Permute.cpp:131
uint32_t m_PadRight
Padding right value in the width dimension.
float m_Eps
Epsilon, small scalar value added to variance to avoid dividing by zero. Defaults to 1e-12f...
A L2NormalizationDescriptor for the L2NormalizationLayer.
An ArgMinMaxDescriptor for ArgMinMaxLayer.
Definition: Descriptors.hpp:67
void Gather(const TensorInfo &paramsInfo, const TensorInfo &indicesInfo, const TensorInfo &outputInfo, Decoder< float > &params, const int32_t *indices, Encoder< float > &output, const int32_t axis)
Definition: Gather.cpp:17
An OriginsDescriptor for the ConcatLayer.
uint32_t m_TargetWidth
Target width value.
float Activation(float in, ActivationFunction function, float a, float b)
Definition: Activation.cpp:13
A GatherDescriptor for the GatherLayer.
void Pad(const TensorInfo &inputInfo, const TensorInfo &outputInfo, const ITensorHandle *inputHandle, ITensorHandle *outputHandle, const PadQueueDescriptor &data)
Definition: Pad.cpp:39
void LogSoftmax(Decoder< float > &input, Encoder< float > &output, const TensorInfo &inputInfo, const LogSoftmaxDescriptor &descriptor)
Definition: LogSoftmax.cpp:29
An ActivationDescriptor for the ActivationLayer.
Definition: Descriptors.hpp:36
uint32_t m_TargetHeight
Target height value.
A SliceDescriptor for the SliceLayer.
void SpaceToBatchNd(const TensorInfo &inputInfo, const TensorInfo &outputInfo, const SpaceToBatchNdDescriptor &params, Decoder< float > &inputData, Encoder< float > &outputData)
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
float m_Beta
Beta, the offset scalar value applied for the normalized tensor. Defaults to 1.0. ...
TEST_SUITE("TestNameAndDescriptorLayerVisitor")
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
NormalizationAlgorithmChannel m_NormChannelType
Normalization channel algorithm to use (Across, Within).
float m_A
Alpha upper bound value used by the activation functions. (BoundedReLu, Linear, TanH, Elu).
Definition: Descriptors.hpp:61
void StridedSlice(const TensorInfo &inputInfo, const StridedSliceDescriptor &params, const void *inputData, void *outputData, unsigned int dataTypeSize)
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
PoolingAlgorithm m_PoolType
The pooling algorithm to use (Max. Average, L2).
The padding fields count, but are ignored.
Jarret 2009: Local Contrast Normalization.
OutputShapeRounding m_OutputShapeRounding
The rounding method for the output shape. (Floor, Ceiling).
A MeanDescriptor for the MeanLayer.
A TransposeDescriptor for the TransposeLayer.
A StridedSliceDescriptor for the StridedSliceLayer.
int m_Axis
Axis to reduce across the input tensor.
Definition: Descriptors.hpp:83
void SpaceToDepth(const TensorInfo &inputInfo, const TensorInfo &outputInfo, const SpaceToDepthDescriptor &params, Decoder< float > &inputData, Encoder< float > &outputData)
void BatchToSpaceNd(const DataLayoutIndexed &dataLayout, const TensorInfo &inputTensorInfo, const TensorInfo &outputTensorInfo, const std::vector< unsigned int > &blockShape, const std::vector< std::pair< unsigned int, unsigned int >> &cropsData, Decoder< float > &inputDecoder, Encoder< float > &outputEncoder)
A Pooling2dDescriptor for the Pooling2dLayer.
A NormalizationDescriptor for the NormalizationLayer.
void Pooling2d(Decoder< float > &rInputDecoder, Encoder< float > &rOutputEncoder, const TensorInfo &inputInfo, const TensorInfo &outputInfo, const Pooling2dDescriptor &params)
Computes the Pooling2d operation.
Definition: Pooling2d.cpp:142
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
void Softmax(Decoder< float > &in, Encoder< float > &out, const TensorInfo &inputTensorInfo, float beta, int axis)
Computes the softmax function on some inputs, into outputs, with a shape given by tensorInfo...
Definition: Softmax.cpp:17
float m_B
Beta lower bound value used by the activation functions. (BoundedReLu, Linear, TanH).
Definition: Descriptors.hpp:63
A SoftmaxDescriptor for the SoftmaxLayer.
float m_Beta
Beta value for the normalization equation.
uint32_t m_NormSize
Depth radius value.
ActivationFunction m_Function
The activation function to use (Sigmoid, TanH, Linear, ReLu, BoundedReLu, SoftReLu, LeakyReLu, Abs, Sqrt, Square, Elu).
Definition: Descriptors.hpp:59
void Resize(Decoder< float > &in, const TensorInfo &inputInfo, Encoder< float > &out, const TensorInfo &outputInfo, DataLayoutIndexed dataLayout, armnn::ResizeMethod resizeMethod, bool alignCorners, bool halfPixelCenters)
Definition: Resize.cpp:65
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
A FillDescriptor for the FillLayer.
A PermuteDescriptor for the PermuteLayer.