79 ConvDescriptorType convolution2dDescriptor;
80 convolution2dDescriptor.m_BiasEnabled =
false;
81 convolution2dDescriptor.m_DataLayout = DataLayout::NHWC;
82 convolution2dDescriptor.m_StrideX = 1;
83 convolution2dDescriptor.m_StrideY = 1;
87 const unsigned int inputDimensionSizes[] = {1, 4, 4, 3};
88 unsigned int weightsDimensionSizes[] = {4, 2, 2, 3};
89 unsigned int outputDimensionSizes[] = {1, 3, 3, 4};
94 weightsDimensionSizes[0] = 4;
95 weightsDimensionSizes[1] = 3;
96 weightsDimensionSizes[2] = 2;
97 weightsDimensionSizes[3] = 2;
98 outputDimensionSizes[3] = weightsDimensionSizes[0] * weightsDimensionSizes[1];
100 const unsigned int outputChannelSize[] = {outputDimensionSizes[3]};
102 TensorInfo inputInfo(4, inputDimensionSizes, ArmnnType);
103 TensorInfo outputInfo(4, outputDimensionSizes, ArmnnType);
105 std::vector<int> weightsIntVector = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
106 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
107 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
108 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42};
109 std::vector<T> weightsVector(begin(weightsIntVector), end(weightsIntVector));
110 TensorInfo weightsInfo(4, weightsDimensionSizes, ArmnnType);
113 std::vector<T> biasVector = GetVector<T>(outputDimensionSizes[3], 3.3f, 0.1f);
114 TensorInfo biasInfo(1, outputChannelSize, ArmnnType);
118 std::vector<T> betaVector = GetVector<T>(outputDimensionSizes[3], 0.0f, 0.2f);
119 std::vector<T> gammaVector = GetVector<T>(outputDimensionSizes[3], 0.5f, 0.1f);
120 std::vector<T> meanVector = GetVector<T>(outputDimensionSizes[3], 0.1f, 0.1f);
121 std::vector<T> varianceVector = GetVector<T>(outputDimensionSizes[3], 1.0f, 0.1f);
134 convolution2dDescriptor,
139 IConnectableLayer* batchNormLayer = network->AddBatchNormalizationLayer(batchNormDescriptor,
151 output2Layer = network->AddOutputLayer(1);
157 batchNormLayer->GetOutputSlot(0).SetTensorInfo(outputInfo);
162 batchNormLayer->GetOutputSlot(0).Connect(outputLayer->
GetInputSlot(0));
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
virtual void SetTensorInfo(const TensorInfo &tensorInfo)=0
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
virtual const IInputSlot & GetInputSlot(unsigned int index) const =0
Get a const input slot handle by slot index.
virtual const IOutputSlot & GetOutputSlot(unsigned int index) const =0
Get the const output slot handle by slot index.
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
virtual int Connect(IInputSlot &destination)=0
A BatchNormalizationDescriptor for the BatchNormalizationLayer.