15 #include <doctest/doctest.h> 26 const char* name =
nullptr)
28 , m_Descriptor(convolution2dDescriptor)
37 const std::vector<armnn::ConstTensor>& constants,
48 CheckDescriptor(static_cast<const armnn::Convolution2dDescriptor&>(descriptor));
50 if (m_Biases.has_value())
52 CHECK(constants.size() == 2);
79 const char* name =
nullptr)
81 , m_Descriptor(descriptor)
90 const std::vector<armnn::ConstTensor>& constants,
101 CheckDescriptor(static_cast<const armnn::DepthwiseConvolution2dDescriptor&>(descriptor));
103 if (m_Biases.has_value())
105 CHECK(constants.size() == 2);
130 const char* name =
nullptr)
132 , m_Descriptor(descriptor)
139 const std::vector<armnn::ConstTensor>& constants,
150 CheckDescriptor(static_cast<const armnn::FullyConnectedDescriptor&>(descriptor));
174 const char* name =
nullptr)
176 , m_Descriptor(descriptor)
178 , m_Variance(variance)
185 const std::vector<armnn::ConstTensor>& constants,
196 CheckDescriptor(static_cast<const armnn::BatchNormalizationDescriptor&>(descriptor));
225 const char* name =
nullptr)
232 const std::vector<armnn::ConstTensor>& constants,
262 const char* name =
nullptr)
264 , m_InputParams(params) {}
267 template<
typename LayerType>
273 template<
typename LayerType>
278 layer->m_BasicParameters.m_OutputGateBias);
281 layer->m_BasicParameters.m_InputToForgetWeights);
284 layer->m_BasicParameters.m_InputToCellWeights);
287 layer->m_BasicParameters.m_InputToOutputWeights);
290 layer->m_BasicParameters.m_RecurrentToForgetWeights);
293 layer->m_BasicParameters.m_RecurrentToCellWeights);
296 layer->m_BasicParameters.m_RecurrentToOutputWeights);
299 layer->m_BasicParameters.m_ForgetGateBias);
302 layer->m_BasicParameters.m_CellBias);
306 layer->m_CifgParameters.m_InputToInputWeights);
309 layer->m_CifgParameters.m_RecurrentToInputWeights);
312 layer->m_CifgParameters.m_InputGateBias);
316 layer->m_ProjectionParameters.m_ProjectionBias);
319 layer->m_ProjectionParameters.m_ProjectionWeights);
323 layer->m_PeepholeParameters.m_CellToInputWeights);
326 layer->m_PeepholeParameters.m_CellToForgetWeights);
329 layer->m_PeepholeParameters.m_CellToOutputWeights);
333 layer->m_LayerNormParameters.m_InputLayerNormWeights);
336 layer->m_LayerNormParameters.m_ForgetLayerNormWeights);
339 layer->m_LayerNormParameters.m_CellLayerNormWeights);
342 layer->m_LayerNormParameters.m_OutputLayerNormWeights);
350 const char* name =
nullptr)
352 , m_Descriptor(descriptor)
357 const std::vector<armnn::ConstTensor>& constants,
368 CheckDescriptor(static_cast<const armnn::LstmDescriptor&>(descriptor));
369 CheckInputParameters<const LstmLayer>(PolymorphicDowncast<const LstmLayer*>(layer), m_InputParams);
391 const char* name =
nullptr)
393 , m_Descriptor(descriptor)
398 const std::vector<armnn::ConstTensor>& constants,
409 CheckDescriptor(static_cast<const armnn::QLstmDescriptor&>(descriptor));
410 CheckInputParameters<const QLstmLayer>(PolymorphicDowncast<const QLstmLayer*>(layer), m_InputParams);
432 const char* name =
nullptr)
434 , m_InputParams(params)
439 const std::vector<armnn::ConstTensor>& constants,
450 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 ConstTensor &weights, const Optional< ConstTensor > &biases, 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)
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
TestConvolution2dLayerVisitor(const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
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...