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,
75 const Descriptor& internalDescriptor =
static_cast<const Descriptor&
>(descriptor);
76 VerifyDescriptor(internalDescriptor);
85 CHECK(descriptor == m_Descriptor);
94 T typedData1 =
static_cast<T
>(data1);
95 T typedData2 =
static_cast<T
>(data2);
99 for (
unsigned int i = 0; i < numElements; i++)
101 CHECK(typedData1[i] == typedData2[i]);
106 template <
typename Descriptor>
111 const std::vector<armnn::TensorInfo>& inputInfos,
112 const std::vector<armnn::TensorInfo>& outputInfos,
113 const Descriptor& descriptor,
114 const std::vector<armnn::ConstTensor>& constants)
116 , m_Constants(constants) {}
120 const std::vector<armnn::ConstTensor>& constants,
133 const Descriptor& internalDescriptor =
static_cast<const Descriptor&
>(descriptor);
134 this->VerifyDescriptor(internalDescriptor);
136 for(std::size_t i = 0; i < constants.size(); i++)
145 std::vector<armnn::ConstTensor> m_Constants;
148 template<
typename DataType>
149 static std::vector<DataType> GenerateRandomData(
size_t size)
151 constexpr
bool isIntegerType = std::is_integral<DataType>::value;
153 typename std::conditional<isIntegerType,
154 std::uniform_int_distribution<DataType>,
155 std::uniform_real_distribution<DataType>>::type;
157 static constexpr
DataType lowerLimit = std::numeric_limits<DataType>::min();
158 static constexpr
DataType upperLimit = std::numeric_limits<DataType>::max();
160 static Distribution distribution(lowerLimit, upperLimit);
161 static std::default_random_engine generator;
163 std::vector<DataType> randomData(size);
164 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