15 #include <doctest/doctest.h> 24 const char* name =
nullptr)
26 , m_Descriptor(convolution2dDescriptor)
33 const std::vector<armnn::ConstTensor>& constants,
44 CheckDescriptor(static_cast<const armnn::Convolution2dDescriptor&>(descriptor));
65 const char* name =
nullptr)
67 , m_Descriptor(descriptor)
74 const std::vector<armnn::ConstTensor>& constants,
85 CheckDescriptor(static_cast<const armnn::DepthwiseConvolution2dDescriptor&>(descriptor));
106 const char* name =
nullptr)
108 , m_Descriptor(descriptor)
115 const std::vector<armnn::ConstTensor>& constants,
126 CheckDescriptor(static_cast<const armnn::FullyConnectedDescriptor&>(descriptor));
150 const char* name =
nullptr)
152 , m_Descriptor(descriptor)
154 , m_Variance(variance)
161 const std::vector<armnn::ConstTensor>& constants,
172 CheckDescriptor(static_cast<const armnn::BatchNormalizationDescriptor&>(descriptor));
201 const char* name =
nullptr)
208 const std::vector<armnn::ConstTensor>& constants,
238 const char* name =
nullptr)
240 , m_InputParams(params) {}
243 template<
typename LayerType>
249 template<
typename LayerType>
254 layer->m_BasicParameters.m_OutputGateBias);
257 layer->m_BasicParameters.m_InputToForgetWeights);
260 layer->m_BasicParameters.m_InputToCellWeights);
263 layer->m_BasicParameters.m_InputToOutputWeights);
266 layer->m_BasicParameters.m_RecurrentToForgetWeights);
269 layer->m_BasicParameters.m_RecurrentToCellWeights);
272 layer->m_BasicParameters.m_RecurrentToOutputWeights);
275 layer->m_BasicParameters.m_ForgetGateBias);
278 layer->m_BasicParameters.m_CellBias);
282 layer->m_CifgParameters.m_InputToInputWeights);
285 layer->m_CifgParameters.m_RecurrentToInputWeights);
288 layer->m_CifgParameters.m_InputGateBias);
292 layer->m_ProjectionParameters.m_ProjectionBias);
295 layer->m_ProjectionParameters.m_ProjectionWeights);
299 layer->m_PeepholeParameters.m_CellToInputWeights);
302 layer->m_PeepholeParameters.m_CellToForgetWeights);
305 layer->m_PeepholeParameters.m_CellToOutputWeights);
309 layer->m_LayerNormParameters.m_InputLayerNormWeights);
312 layer->m_LayerNormParameters.m_ForgetLayerNormWeights);
315 layer->m_LayerNormParameters.m_CellLayerNormWeights);
318 layer->m_LayerNormParameters.m_OutputLayerNormWeights);
326 const char* name =
nullptr)
328 , m_Descriptor(descriptor)
333 const std::vector<armnn::ConstTensor>& constants,
344 CheckDescriptor(static_cast<const armnn::LstmDescriptor&>(descriptor));
345 CheckInputParameters<const LstmLayer>(PolymorphicDowncast<const LstmLayer*>(layer), m_InputParams);
367 const char* name =
nullptr)
369 , m_Descriptor(descriptor)
374 const std::vector<armnn::ConstTensor>& constants,
385 CheckDescriptor(static_cast<const armnn::QLstmDescriptor&>(descriptor));
386 CheckInputParameters<const QLstmLayer>(PolymorphicDowncast<const QLstmLayer*>(layer), m_InputParams);
408 const char* name =
nullptr)
410 , m_InputParams(params)
415 const std::vector<armnn::ConstTensor>& constants,
426 CheckInputParameters(m_InputParams);
void ExecuteStrategy(const armnn::IConnectableLayer *layer, const armnn::BaseDescriptor &descriptor, const std::vector< armnn::ConstTensor > &constants, const char *name, const armnn::LayerBindingId id=0) override
void CheckLayerName(const char *name)
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
void ExecuteStrategy(const armnn::IConnectableLayer *layer, const armnn::BaseDescriptor &descriptor, const std::vector< armnn::ConstTensor > &constants, const char *name, const armnn::LayerBindingId id=0) override
A Convolution2dDescriptor for the Convolution2dLayer.
LstmInputParams m_InputParams
void CheckLayerPointer(const IConnectableLayer *layer)
void ExecuteStrategy(const armnn::IConnectableLayer *layer, const armnn::BaseDescriptor &descriptor, const std::vector< armnn::ConstTensor > &constants, const char *name, const armnn::LayerBindingId id=0) override
Copyright (c) 2021 ARM Limited and Contributors.
void IgnoreUnused(Ts &&...)
void ExecuteStrategy(const armnn::IConnectableLayer *layer, const armnn::BaseDescriptor &descriptor, const std::vector< armnn::ConstTensor > &constants, const char *name, const armnn::LayerBindingId id=0) override
void CheckInputParameters(const LayerType *layer, const LstmInputParams &inputParams)
TestDepthwiseConvolution2dLayerVisitor(const DepthwiseConvolution2dDescriptor &descriptor, const char *name=nullptr)
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
void CheckConstTensors(const ConstTensor &expected, const ConstTensor &actual)
Base class for all descriptors.
TestBatchNormalizationLayerVisitor(const BatchNormalizationDescriptor &descriptor, const ConstTensor &mean, const ConstTensor &variance, const ConstTensor &beta, const ConstTensor &gamma, const char *name=nullptr)
NoThrowStrategy m_DefaultStrategy
An LstmDescriptor for the LstmLayer.
TestFullyConnectedLayerVistor(const FullyConnectedDescriptor &descriptor, const char *name=nullptr)
TestConvolution2dLayerVisitor(const Convolution2dDescriptor &convolution2dDescriptor, const char *name=nullptr)
A FullyConnectedDescriptor for the FullyConnectedLayer.
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
void ExecuteStrategy(const armnn::IConnectableLayer *layer, const armnn::BaseDescriptor &descriptor, const std::vector< armnn::ConstTensor > &constants, const char *name, const armnn::LayerBindingId id=0) override
TestConstantLayerVisitor(const ConstTensor &input, const char *name=nullptr)
void CheckDescriptor(const Convolution2dDescriptor &convolution2dDescriptor)
A QLstmDescriptor for the QLstmLayer.
void Apply(const std::string &)
virtual LayerType GetType() const =0
Returns the armnn::LayerType of this layer.
void ExecuteStrategy(const armnn::IConnectableLayer *layer, const armnn::BaseDescriptor &descriptor, const std::vector< armnn::ConstTensor > &constants, const char *name, const armnn::LayerBindingId id=0) override
virtual ~TestDepthwiseConvolution2dLayerVisitor()
virtual ~TestFullyConnectedLayerVistor()
void CheckConstTensorPtrs(const std::string &name, const ConstTensor *expected, const ConstTensor *actual)
LstmVisitor(const LstmInputParams ¶ms, const char *name=nullptr)
TestLstmLayerVisitor(const LstmDescriptor &descriptor, const LstmInputParams ¶ms, const char *name=nullptr)
virtual ~TestConvolution2dLayerVisitor()
TestQLstmLayerVisitor(const QLstmDescriptor &descriptor, const LstmInputParams ¶ms, const char *name=nullptr)
TestQuantizedLstmLayerVisitor(const QuantizedLstmInputParams ¶ms, const char *name=nullptr)
void ExecuteStrategy(const armnn::IConnectableLayer *layer, const armnn::BaseDescriptor &descriptor, const std::vector< armnn::ConstTensor > &constants, const char *name, const armnn::LayerBindingId id=0) override
void ExecuteStrategy(const armnn::IConnectableLayer *layer, const armnn::BaseDescriptor &descriptor, const std::vector< armnn::ConstTensor > &constants, const char *name, const armnn::LayerBindingId id=0) override
const char * GetLayerTypeAsCString(LayerType type)
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below...