16 #include <doctest/doctest.h> 28 const std::vector<armnn::TensorInfo>& inputInfos,
29 const std::vector<armnn::TensorInfo>& outputInfos);
33 const std::vector<armnn::ConstTensor>& constants,
45 std::string m_LayerName;
46 std::vector<armnn::TensorInfo> m_InputTensorInfos;
47 std::vector<armnn::TensorInfo> m_OutputTensorInfos;
50 template<
typename Descriptor>
55 const std::vector<armnn::TensorInfo>& inputInfos,
56 const std::vector<armnn::TensorInfo>& outputInfos,
57 const Descriptor& descriptor)
59 , m_Descriptor(descriptor) {}
63 const std::vector<armnn::ConstTensor>& constants,
76 const Descriptor& internalDescriptor =
static_cast<const Descriptor&
>(descriptor);
77 VerifyDescriptor(internalDescriptor);
86 CHECK(descriptor == m_Descriptor);
95 T typedData1 =
static_cast<T
>(data1);
96 T typedData2 =
static_cast<T
>(data2);
100 for (
unsigned int i = 0; i < numElements; i++)
102 CHECK(typedData1[i] == typedData2[i]);
107 template <
typename Descriptor>
112 const std::vector<armnn::TensorInfo>& inputInfos,
113 const std::vector<armnn::TensorInfo>& outputInfos,
114 const Descriptor& descriptor,
115 const std::vector<armnn::ConstTensor>& constants)
117 , m_Constants(constants) {}
121 const std::vector<armnn::ConstTensor>& constants,
134 const Descriptor& internalDescriptor =
static_cast<const Descriptor&
>(descriptor);
135 this->VerifyDescriptor(internalDescriptor);
137 for(std::size_t i = 0; i < constants.size(); i++)
146 std::vector<armnn::ConstTensor> m_Constants;
149 template<
typename DataType>
150 static std::vector<DataType> GenerateRandomData(
size_t size)
152 constexpr
bool isIntegerType = std::is_integral<DataType>::value;
154 typename std::conditional<isIntegerType,
155 std::uniform_int_distribution<DataType>,
156 std::uniform_real_distribution<DataType>>::type;
158 static constexpr
DataType lowerLimit = std::numeric_limits<DataType>::min();
159 static constexpr
DataType upperLimit = std::numeric_limits<DataType>::max();
161 static Distribution distribution(lowerLimit, upperLimit);
162 static std::default_random_engine generator;
164 std::vector<DataType> randomData(size);
165 generate(randomData.begin(), randomData.end(), []() {
return distribution(generator); });
std::string SerializeNetwork(const armnn::INetwork &network)
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
void VerifyDescriptor(const Descriptor &descriptor)
Main network class which provides the interface for building up a neural network. ...
LayerVerifierBaseWithDescriptor(const std::string &layerName, const std::vector< armnn::TensorInfo > &inputInfos, const std::vector< armnn::TensorInfo > &outputInfos, const Descriptor &descriptor)
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 IgnoreUnused(Ts &&...)
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
armnn::INetworkPtr DeserializeNetwork(const std::string &serializerString)
Base class for all descriptors.
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 VerifyNameAndConnections(const armnn::IConnectableLayer *layer, const char *name)
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
void CompareConstTensorData(const void *data1, const void *data2, unsigned int numElements)
LayerVerifierBase(const std::string &layerName, const std::vector< armnn::TensorInfo > &inputInfos, const std::vector< armnn::TensorInfo > &outputInfos)
LayerVerifierBaseWithDescriptorAndConstants(const std::string &layerName, const std::vector< armnn::TensorInfo > &inputInfos, const std::vector< armnn::TensorInfo > &outputInfos, const Descriptor &descriptor, const std::vector< armnn::ConstTensor > &constants)
void VerifyConstTensors(const std::string &tensorName, const armnn::ConstTensor *expectedPtr, const armnn::ConstTensor *actualPtr)
virtual LayerType GetType() const =0
Returns the armnn::LayerType of this layer.
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
void CompareConstTensor(const armnn::ConstTensor &tensor1, const armnn::ConstTensor &tensor2)
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