9 #include <boost/test/unit_test.hpp> 47 BOOST_CHECK(m_Descriptor.m_Eps == descriptor.
m_Eps);
56 BOOST_CHECK(m_Descriptor.m_CifgEnabled == descriptor.
m_CifgEnabled);
65 if (expected ==
nullptr)
67 BOOST_CHECK_MESSAGE(actual ==
nullptr, name +
" actual should have been a nullptr");
71 BOOST_CHECK_MESSAGE(actual !=
nullptr, name +
" actual should have been set");
72 if (actual !=
nullptr)
81 CheckConstTensorPtrs(
"ProjectionBias", m_InputParams.m_ProjectionBias, inputParams.
m_ProjectionBias);
82 CheckConstTensorPtrs(
"ProjectionWeights", m_InputParams.m_ProjectionWeights, inputParams.
m_ProjectionWeights);
83 CheckConstTensorPtrs(
"OutputGateBias", m_InputParams.m_OutputGateBias, inputParams.
m_OutputGateBias);
84 CheckConstTensorPtrs(
"InputToInputWeights",
86 CheckConstTensorPtrs(
"InputToForgetWeights",
88 CheckConstTensorPtrs(
"InputToCellWeights", m_InputParams.m_InputToCellWeights, inputParams.
m_InputToCellWeights);
101 CheckConstTensorPtrs(
103 CheckConstTensorPtrs(
105 CheckConstTensorPtrs(
"InputGateBias", m_InputParams.m_InputGateBias, inputParams.
m_InputGateBias);
106 CheckConstTensorPtrs(
"ForgetGateBias", m_InputParams.m_ForgetGateBias, inputParams.
m_ForgetGateBias);
107 CheckConstTensorPtrs(
"CellBias", m_InputParams.m_CellBias, inputParams.
m_CellBias);
114 if (expected ==
nullptr)
116 BOOST_CHECK_MESSAGE(actual ==
nullptr, name +
" actual should have been a nullptr");
120 BOOST_CHECK_MESSAGE(actual !=
nullptr, name +
" actual should have been set");
121 if (actual !=
nullptr)
130 BOOST_CHECK(m_Descriptor.m_CellClip == descriptor.
m_CellClip);
132 BOOST_CHECK(m_Descriptor.m_CifgEnabled == descriptor.
m_CifgEnabled);
139 CheckConstTensorPtrs(
"InputToInputWeights",
140 m_InputParams.m_InputToInputWeights,
143 CheckConstTensorPtrs(
"InputToForgetWeights",
144 m_InputParams.m_InputToForgetWeights,
147 CheckConstTensorPtrs(
"InputToCellWeights",
148 m_InputParams.m_InputToCellWeights,
151 CheckConstTensorPtrs(
"InputToOutputWeights",
152 m_InputParams.m_InputToOutputWeights,
155 CheckConstTensorPtrs(
"RecurrentToInputWeights",
156 m_InputParams.m_RecurrentToInputWeights,
159 CheckConstTensorPtrs(
"RecurrentToForgetWeights",
160 m_InputParams.m_RecurrentToForgetWeights,
163 CheckConstTensorPtrs(
"RecurrentToCellWeights",
164 m_InputParams.m_RecurrentToCellWeights,
167 CheckConstTensorPtrs(
"RecurrentToOutputWeights",
168 m_InputParams.m_RecurrentToOutputWeights,
171 CheckConstTensorPtrs(
"CellToInputWeights",
172 m_InputParams.m_CellToInputWeights,
175 CheckConstTensorPtrs(
"CellToForgetWeights",
176 m_InputParams.m_CellToForgetWeights,
179 CheckConstTensorPtrs(
"CellToOutputWeights",
180 m_InputParams.m_CellToOutputWeights,
183 CheckConstTensorPtrs(
"ProjectionWeights", m_InputParams.m_ProjectionWeights, inputParams.
m_ProjectionWeights);
184 CheckConstTensorPtrs(
"ProjectionBias", m_InputParams.m_ProjectionBias, inputParams.
m_ProjectionBias);
186 CheckConstTensorPtrs(
"InputGateBias", m_InputParams.m_InputGateBias, inputParams.
m_InputGateBias);
187 CheckConstTensorPtrs(
"ForgetGateBias", m_InputParams.m_ForgetGateBias, inputParams.
m_ForgetGateBias);
188 CheckConstTensorPtrs(
"CellBias", m_InputParams.m_CellBias, inputParams.
m_CellBias);
189 CheckConstTensorPtrs(
"OutputGateBias", m_InputParams.m_OutputGateBias, inputParams.
m_OutputGateBias);
191 CheckConstTensorPtrs(
"InputLayerNormWeights",
192 m_InputParams.m_InputLayerNormWeights,
195 CheckConstTensorPtrs(
"ForgetLayerNormWeights",
196 m_InputParams.m_ForgetLayerNormWeights,
199 CheckConstTensorPtrs(
"CellLayerNormWeights",
200 m_InputParams.m_CellLayerNormWeights,
203 CheckConstTensorPtrs(
"OutputLayerNormWeights",
204 m_InputParams.m_OutputLayerNormWeights,
212 if (expected ==
nullptr)
214 BOOST_CHECK_MESSAGE(actual ==
nullptr, name +
" actual should have been a nullptr");
218 BOOST_CHECK_MESSAGE(actual !=
nullptr, name +
" actual should have been set");
219 if (actual !=
nullptr)
228 CheckConstTensorPtrs(
"InputToInputWeights",
229 m_InputParams.m_InputToInputWeights,
232 CheckConstTensorPtrs(
"InputToForgetWeights",
233 m_InputParams.m_InputToForgetWeights,
236 CheckConstTensorPtrs(
"InputToCellWeights",
237 m_InputParams.m_InputToCellWeights,
240 CheckConstTensorPtrs(
"InputToOutputWeights",
241 m_InputParams.m_InputToOutputWeights,
244 CheckConstTensorPtrs(
"RecurrentToInputWeights",
245 m_InputParams.m_RecurrentToInputWeights,
248 CheckConstTensorPtrs(
"RecurrentToForgetWeights",
249 m_InputParams.m_RecurrentToForgetWeights,
252 CheckConstTensorPtrs(
"RecurrentToCellWeights",
253 m_InputParams.m_RecurrentToCellWeights,
256 CheckConstTensorPtrs(
"RecurrentToOutputWeights",
257 m_InputParams.m_RecurrentToOutputWeights,
260 CheckConstTensorPtrs(
"InputGateBias", m_InputParams.m_InputGateBias, inputParams.
m_InputGateBias);
261 CheckConstTensorPtrs(
"ForgetGateBias", m_InputParams.m_ForgetGateBias, inputParams.
m_ForgetGateBias);
262 CheckConstTensorPtrs(
"CellBias", m_InputParams.m_CellBias, inputParams.
m_CellBias);
263 CheckConstTensorPtrs(
"OutputGateBias", m_InputParams.m_OutputGateBias, inputParams.
m_OutputGateBias);
279 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
280 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
293 const char* layerName =
"Convolution2dLayer";
303 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
304 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
327 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
328 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
331 std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
332 std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
346 const char* layerName =
"Convolution2dLayer";
357 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
358 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
361 std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
362 std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
385 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
386 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
399 const char* layerName =
"DepthwiseConvolution2dLayer";
409 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
410 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
436 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
437 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
440 std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
441 std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
455 const char* layerName =
"DepthwiseConvolution2dLayer";
466 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
467 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
470 std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
471 std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
488 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
489 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
502 const char* layerName =
"FullyConnectedLayer";
506 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
507 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
524 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
525 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
528 std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
529 std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
543 const char* layerName =
"FullyConnectedLayer";
548 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
549 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
552 std::vector<float> biasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
553 std::vector<unsigned int> biasDimensions = {1, 1, 3, 3};
568 descriptor.
m_Eps = 0.0002f;
571 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
572 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
575 std::vector<float> varianceData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
576 std::vector<unsigned int> varianceDimensions = {1, 1, 3, 3};
579 std::vector<float> betaData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
580 std::vector<unsigned int> betaDimensions = {1, 1, 3, 3};
583 std::vector<float> gammaData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
584 std::vector<unsigned int> gammaDimensions = {1, 1, 3, 3};
597 const char* layerName =
"BatchNormalizationLayer";
599 descriptor.
m_Eps = 0.0002f;
602 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
603 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
606 std::vector<float> varianceData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
607 std::vector<unsigned int> varianceDimensions = {1, 1, 3, 3};
610 std::vector<float> betaData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
611 std::vector<unsigned int> betaDimensions = {1, 1, 3, 3};
614 std::vector<float> gammaData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
615 std::vector<unsigned int> gammaDimensions = {1, 1, 3, 3};
623 descriptor, mean, variance, beta, gamma, layerName);
629 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
630 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
643 const char* layerName =
"ConstantLayer";
644 std::vector<float> data = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
645 std::vector<unsigned int> dimensions = {1, 1, 3, 3};
664 std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
665 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
669 std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
670 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
674 std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
675 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
679 std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
680 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
682 4, recurrentToForgetWeightsDimensions.data(),
DataType::Float32), recurrentToForgetWeightsData);
684 std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
685 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
687 4, recurrentToCellWeightsDimensions.data(),
DataType::Float32), recurrentToCellWeightsData);
689 std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
690 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
692 4, recurrentToOutputWeightsDimensions.data(),
DataType::Float32), recurrentToOutputWeightsData);
694 std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
695 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
699 std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
700 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
704 std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
705 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
730 const char* layerName =
"LstmLayer";
737 std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
738 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
742 std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
743 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
747 std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
748 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
752 std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
753 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
755 4, recurrentToForgetWeightsDimensions.data(),
DataType::Float32), recurrentToForgetWeightsData);
757 std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
758 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
760 4, recurrentToCellWeightsDimensions.data(),
DataType::Float32), recurrentToCellWeightsData);
762 std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
763 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
765 4, recurrentToOutputWeightsDimensions.data(),
DataType::Float32), recurrentToOutputWeightsData);
767 std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
768 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
772 std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
773 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
777 std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
778 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
809 std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
810 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
814 std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
815 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
819 std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
820 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
824 std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
825 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
827 4, recurrentToForgetWeightsDimensions.data(),
DataType::Float32), recurrentToForgetWeightsData);
829 std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
830 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
832 4, recurrentToCellWeightsDimensions.data(),
DataType::Float32), recurrentToCellWeightsData);
834 std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
835 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
837 4, recurrentToOutputWeightsDimensions.data(),
DataType::Float32), recurrentToOutputWeightsData);
839 std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
840 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
844 std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
845 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
849 std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
850 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
854 std::vector<float> inputToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
855 std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
859 std::vector<float> recurrentToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
860 std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
862 4, recurrentToInputWeightsDimensions.data(),
DataType::Float32), recurrentToInputWeightsData);
864 std::vector<float> inputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
865 std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
894 const char* layerName =
"LstmLayer";
901 std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
902 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
906 std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
907 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
911 std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
912 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
916 std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
917 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
919 4, recurrentToForgetWeightsDimensions.data(),
DataType::Float32), recurrentToForgetWeightsData);
921 std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
922 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
924 4, recurrentToCellWeightsDimensions.data(),
DataType::Float32), recurrentToCellWeightsData);
926 std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
927 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
929 4, recurrentToOutputWeightsDimensions.data(),
DataType::Float32), recurrentToOutputWeightsData);
931 std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
932 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
936 std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
937 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
941 std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
942 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
946 std::vector<float> inputToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
947 std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
951 std::vector<float> recurrentToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
952 std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
954 4, recurrentToInputWeightsDimensions.data(),
DataType::Float32), recurrentToInputWeightsData);
956 std::vector<float> inputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
957 std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
994 std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
995 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
999 std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1000 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1004 std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1005 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1009 std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1010 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1012 4, recurrentToForgetWeightsDimensions.data(),
DataType::Float32), recurrentToForgetWeightsData);
1014 std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1015 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1017 4, recurrentToCellWeightsDimensions.data(),
DataType::Float32), recurrentToCellWeightsData);
1019 std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1020 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1022 4, recurrentToOutputWeightsDimensions.data(),
DataType::Float32), recurrentToOutputWeightsData);
1024 std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1025 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1029 std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1030 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1034 std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1035 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1039 std::vector<float> cellToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1040 std::vector<unsigned int> cellToForgetWeightsDimensions = {1, 1, 3, 3};
1044 std::vector<float> cellToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1045 std::vector<unsigned int> cellToOutputWeightsDimensions = {1, 1, 3, 3};
1080 std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1081 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1085 std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1086 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1090 std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1091 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1095 std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1096 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1098 4, recurrentToForgetWeightsDimensions.data(),
DataType::Float32), recurrentToForgetWeightsData);
1100 std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1101 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1103 4, recurrentToCellWeightsDimensions.data(),
DataType::Float32), recurrentToCellWeightsData);
1105 std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1106 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1108 4, recurrentToOutputWeightsDimensions.data(),
DataType::Float32), recurrentToOutputWeightsData);
1110 std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1111 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1115 std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1116 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1120 std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1121 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1125 std::vector<float> cellToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1126 std::vector<unsigned int> cellToInputWeightsDimensions = {1, 1, 3, 3};
1130 std::vector<float> cellToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1131 std::vector<unsigned int> cellToForgetWeightsDimensions = {1, 1, 3, 3};
1135 std::vector<float> cellToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1136 std::vector<unsigned int> cellToOutputWeightsDimensions = {1, 1, 3, 3};
1140 std::vector<float> inputToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1141 std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
1145 std::vector<float> recurrentToInputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1146 std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
1148 4, recurrentToInputWeightsDimensions.data(),
DataType::Float32), recurrentToInputWeightsData);
1150 std::vector<float> inputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1151 std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
1187 const char* layerName =
"LstmLayer";
1195 std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1196 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1200 std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1201 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1205 std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1206 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1210 std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1211 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1213 4, recurrentToForgetWeightsDimensions.data(),
DataType::Float32), recurrentToForgetWeightsData);
1215 std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1216 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1218 4, recurrentToCellWeightsDimensions.data(),
DataType::Float32), recurrentToCellWeightsData);
1220 std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1221 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1223 4, recurrentToOutputWeightsDimensions.data(),
DataType::Float32), recurrentToOutputWeightsData);
1225 std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1226 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1230 std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1231 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1235 std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1236 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1240 std::vector<float> cellToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1241 std::vector<unsigned int> cellToForgetWeightsDimensions = {1, 1, 3, 3};
1245 std::vector<float> cellToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1246 std::vector<unsigned int> cellToOutputWeightsDimensions = {1, 1, 3, 3};
1282 std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1283 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1287 std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1288 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1292 std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1293 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1297 std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1298 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1300 4, recurrentToForgetWeightsDimensions.data(),
DataType::Float32), recurrentToForgetWeightsData);
1302 std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1303 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1305 4, recurrentToCellWeightsDimensions.data(),
DataType::Float32), recurrentToCellWeightsData);
1307 std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1308 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1310 4, recurrentToOutputWeightsDimensions.data(),
DataType::Float32), recurrentToOutputWeightsData);
1312 std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1313 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1317 std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1318 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1322 std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1323 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1327 std::vector<float> projectionBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1328 std::vector<unsigned int> projectionBiasDimensions = {1, 1, 3, 3};
1332 std::vector<float> projectionWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1333 std::vector<unsigned int> projectionWeightsDimensions = {1, 1, 3, 3};
1361 const char* layerName =
"LstmLayer";
1369 std::vector<float> inputToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1370 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1374 std::vector<float> inputToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1375 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1379 std::vector<float> inputToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1380 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1384 std::vector<float> recurrentToForgetWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1385 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1387 4, recurrentToForgetWeightsDimensions.data(),
DataType::Float32), recurrentToForgetWeightsData);
1389 std::vector<float> recurrentToCellWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1390 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1392 4, recurrentToCellWeightsDimensions.data(),
DataType::Float32), recurrentToCellWeightsData);
1394 std::vector<float> recurrentToOutputWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1395 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1397 4, recurrentToOutputWeightsDimensions.data(),
DataType::Float32), recurrentToOutputWeightsData);
1399 std::vector<float> forgetGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1400 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1404 std::vector<float> cellBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1405 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1409 std::vector<float> outputGateBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1410 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1414 std::vector<float> projectionBiasData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1415 std::vector<unsigned int> projectionBiasDimensions = {1, 1, 3, 3};
1419 std::vector<float> projectionWeightsData = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0};
1420 std::vector<unsigned int> projectionWeightsDimensions = {1, 1, 3, 3};
1454 std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1455 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1459 std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1460 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1464 std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1465 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1469 std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1470 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1472 4, recurrentToForgetWeightsDimensions.data(),
DataType::QSymmS8), recurrentToForgetWeightsData);
1474 std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1475 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1477 4, recurrentToCellWeightsDimensions.data(),
DataType::QSymmS8), recurrentToCellWeightsData);
1479 std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1480 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1482 4, recurrentToOutputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToOutputWeightsData);
1484 std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1485 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1489 std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1490 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1494 std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1495 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1520 const char* layerName =
"QLstmLayer";
1527 std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1528 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1532 std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1533 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1537 std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1538 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1542 std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1543 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1545 4, recurrentToForgetWeightsDimensions.data(),
DataType::QSymmS8), recurrentToForgetWeightsData);
1547 std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1548 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1550 4, recurrentToCellWeightsDimensions.data(),
DataType::QSymmS8), recurrentToCellWeightsData);
1552 std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1553 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1555 4, recurrentToOutputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToOutputWeightsData);
1557 std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1558 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1562 std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1563 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1567 std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1568 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1599 std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1600 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1604 std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1605 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1609 std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1610 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1614 std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1615 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1617 4, recurrentToForgetWeightsDimensions.data(),
DataType::QSymmS8), recurrentToForgetWeightsData);
1619 std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1620 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1622 4, recurrentToCellWeightsDimensions.data(),
DataType::QSymmS8), recurrentToCellWeightsData);
1624 std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1625 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1627 4, recurrentToOutputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToOutputWeightsData);
1629 std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1630 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1634 std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1635 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1639 std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1640 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1645 std::vector<uint8_t> inputToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1646 std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
1650 std::vector<uint8_t> recurrentToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1651 std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
1653 4, recurrentToInputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToInputWeightsData);
1655 std::vector<int32_t> inputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1656 std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
1695 std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1696 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1700 std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1701 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1705 std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1706 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1710 std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1711 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1713 4, recurrentToForgetWeightsDimensions.data(),
DataType::QSymmS8), recurrentToForgetWeightsData);
1715 std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1716 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1718 4, recurrentToCellWeightsDimensions.data(),
DataType::QSymmS8), recurrentToCellWeightsData);
1720 std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1721 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1723 4, recurrentToOutputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToOutputWeightsData);
1725 std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1726 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1730 std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1731 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1735 std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1736 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1741 std::vector<uint8_t> inputToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1742 std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
1746 std::vector<uint8_t> recurrentToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1747 std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
1749 4, recurrentToInputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToInputWeightsData);
1751 std::vector<int32_t> inputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1752 std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
1757 std::vector<int16_t> cellToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1758 std::vector<unsigned int> cellToInputWeightsDimensions = {1, 1, 3, 3};
1762 std::vector<int16_t> cellToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1763 std::vector<unsigned int> cellToForgetWeightsDimensions = {1, 1, 3, 3};
1767 std::vector<int16_t> cellToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1768 std::vector<unsigned int> cellToOutputWeightsDimensions = {1, 1, 3, 3};
1812 std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1813 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1817 std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1818 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1822 std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1823 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1827 std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1828 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1830 4, recurrentToForgetWeightsDimensions.data(),
DataType::QSymmS8), recurrentToForgetWeightsData);
1832 std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1833 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1835 4, recurrentToCellWeightsDimensions.data(),
DataType::QSymmS8), recurrentToCellWeightsData);
1837 std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1838 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1840 4, recurrentToOutputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToOutputWeightsData);
1842 std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1843 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1847 std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1848 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1852 std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1853 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1858 std::vector<int16_t> cellToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1859 std::vector<unsigned int> cellToForgetWeightsDimensions = {1, 1, 3, 3};
1863 std::vector<int16_t> cellToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1864 std::vector<unsigned int> cellToOutputWeightsDimensions = {1, 1, 3, 3};
1902 std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1903 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1907 std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1908 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
1912 std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1913 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
1917 std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1918 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
1920 4, recurrentToForgetWeightsDimensions.data(),
DataType::QSymmS8), recurrentToForgetWeightsData);
1922 std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1923 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
1925 4, recurrentToCellWeightsDimensions.data(),
DataType::QSymmS8), recurrentToCellWeightsData);
1927 std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1928 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
1930 4, recurrentToOutputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToOutputWeightsData);
1932 std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1933 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
1937 std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1938 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
1942 std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1943 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
1948 std::vector<uint8_t> projectionWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1949 std::vector<unsigned int> projectionWeightsDimensions = {1, 1, 3, 3};
1951 4, projectionWeightsDimensions.data(),
DataType::QSymmS8), projectionWeightsData);
1953 std::vector<int32_t> projectionBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1954 std::vector<unsigned int> projectionBiasDimensions = {1, 1, 3, 3};
1992 std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1993 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
1997 std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
1998 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
2002 std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2003 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
2007 std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2008 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
2010 4, recurrentToForgetWeightsDimensions.data(),
DataType::QSymmS8), recurrentToForgetWeightsData);
2012 std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2013 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
2015 4, recurrentToCellWeightsDimensions.data(),
DataType::QSymmS8), recurrentToCellWeightsData);
2017 std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2018 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
2020 4, recurrentToOutputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToOutputWeightsData);
2022 std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2023 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
2027 std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2028 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
2032 std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2033 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
2038 std::vector<uint8_t> inputToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2039 std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
2043 std::vector<uint8_t> recurrentToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2044 std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
2046 4, recurrentToInputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToInputWeightsData);
2048 std::vector<int32_t> inputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2049 std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
2054 std::vector<int16_t> inputLayerNormWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2055 std::vector<unsigned int> inputLayerNormWeightsDimensions = {1, 1, 3, 3};
2059 std::vector<int16_t> forgetLayerNormWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2060 std::vector<unsigned int> forgetLayerNormWeightsDimensions = {1, 1, 3, 3};
2064 std::vector<int16_t> cellLayerNormWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2065 std::vector<unsigned int> cellLayerNormWeightsDimensions = {1, 1, 3, 3};
2069 std::vector<int16_t> outputLayerNormWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2070 std::vector<unsigned int> outputLayerNormWeightsDimensions = {1, 1, 3, 3};
2109 std::vector<uint8_t> inputToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2110 std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
2114 std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2115 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
2119 std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2120 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
2124 std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2125 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
2130 std::vector<uint8_t> recurrentToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2131 std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
2133 4, recurrentToInputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToInputWeightsData);
2135 std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2136 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
2138 4, recurrentToForgetWeightsDimensions.data(),
DataType::QSymmS8), recurrentToForgetWeightsData);
2140 std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2141 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
2143 4, recurrentToCellWeightsDimensions.data(),
DataType::QSymmS8), recurrentToCellWeightsData);
2145 std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2146 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
2148 4, recurrentToOutputWeightsDimensions.data(),
DataType::QSymmS8), recurrentToOutputWeightsData);
2151 std::vector<int32_t> inputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2152 std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
2156 std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2157 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
2161 std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2162 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
2166 std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2167 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
2198 const char* layerName =
"LstmLayer";
2199 std::vector<uint8_t> inputToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2200 std::vector<unsigned int> inputToInputWeightsDimensions = {1, 1, 3, 3};
2204 std::vector<uint8_t> inputToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2205 std::vector<unsigned int> inputToForgetWeightsDimensions = {1, 1, 3, 3};
2209 std::vector<uint8_t> inputToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2210 std::vector<unsigned int> inputToCellWeightsDimensions = {1, 1, 3, 3};
2214 std::vector<uint8_t> inputToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2215 std::vector<unsigned int> inputToOutputWeightsDimensions = {1, 1, 3, 3};
2220 std::vector<uint8_t> recurrentToInputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2221 std::vector<unsigned int> recurrentToInputWeightsDimensions = {1, 1, 3, 3};
2223 4, recurrentToInputWeightsDimensions.data(),
DataType::QAsymmU8), recurrentToInputWeightsData);
2225 std::vector<uint8_t> recurrentToForgetWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2226 std::vector<unsigned int> recurrentToForgetWeightsDimensions = {1, 1, 3, 3};
2228 4, recurrentToForgetWeightsDimensions.data(),
DataType::QAsymmU8), recurrentToForgetWeightsData);
2230 std::vector<uint8_t> recurrentToCellWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2231 std::vector<unsigned int> recurrentToCellWeightsDimensions = {1, 1, 3, 3};
2233 4, recurrentToCellWeightsDimensions.data(),
DataType::QAsymmU8), recurrentToCellWeightsData);
2235 std::vector<uint8_t> recurrentToOutputWeightsData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2236 std::vector<unsigned int> recurrentToOutputWeightsDimensions = {1, 1, 3, 3};
2238 4, recurrentToOutputWeightsDimensions.data(),
DataType::QAsymmU8), recurrentToOutputWeightsData);
2241 std::vector<int32_t> inputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2242 std::vector<unsigned int> inputGateBiasDimensions = {1, 1, 3, 3};
2246 std::vector<int32_t> forgetGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2247 std::vector<unsigned int> forgetGateBiasDimensions = {1, 1, 3, 3};
2251 std::vector<int32_t> cellBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2252 std::vector<unsigned int> cellBiasDimensions = {1, 1, 3, 3};
2256 std::vector<int32_t> outputGateBiasData = {1, 2, 3, 4, 5, 6, 7, 8, 9};
2257 std::vector<unsigned int> outputGateBiasDimensions = {1, 1, 3, 3};
void CheckDescriptor(const BatchNormalizationDescriptor &descriptor)
BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
void CheckDescriptor(const QLstmDescriptor &descriptor)
uint32_t m_PadBottom
Padding bottom value in the height dimension.
bool m_BiasEnabled
Enable/disable bias.
void CheckConstTensorPtrs(const std::string &name, const ConstTensor *expected, const ConstTensor *actual)
bool m_ProjectionEnabled
Enable/disable the projection layer.
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
bool m_BiasEnabled
Enable/disable bias.
uint32_t m_PadBottom
Padding bottom value in the height dimension.
float m_ClippingThresProj
Clipping threshold value for the projection.
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
bool m_TransposeWeightMatrix
Enable/disable transpose weight matrix.
void CheckDescriptor(const FullyConnectedDescriptor &descriptor)
bool m_PeepholeEnabled
Enable/disable peephole.
A Convolution2dDescriptor for the Convolution2dLayer.
uint32_t m_PadLeft
Padding left value in the width dimension.
IConnectableLayer * AddQuantizedLstmLayer(const QuantizedLstmInputParams ¶ms, const char *name=nullptr)
IConnectableLayer * AddConstantLayer(const ConstTensor &input, const char *name=nullptr)
float m_Eps
Value to add to the variance. Used to avoid dividing by zero.
DataLayout m_DataLayout
The data layout to be used (NCHW, NHWC).
uint32_t m_PadRight
Padding right value in the width dimension.
Copyright (c) 2021 ARM Limited and Contributors.
IConnectableLayer * AddDepthwiseConvolution2dLayer(const DepthwiseConvolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
Private implementation of INetwork.
void CheckConstTensors(const ConstTensor &expected, const ConstTensor &actual)
uint32_t m_PadTop
Padding top value in the height dimension.
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
IConnectableLayer * AddQLstmLayer(const QLstmDescriptor &descriptor, const LstmInputParams ¶ms, const char *name=nullptr)
uint32_t m_StrideX
Stride value when proceeding through input for the width dimension.
void CheckInputParameters(const LstmInputParams &inputParams)
bool m_LayerNormEnabled
Enable/disable layer normalization.
An LstmDescriptor for the LstmLayer.
uint32_t m_PadTop
Padding top value in the height dimension.
void CheckDescriptor(const LstmDescriptor &descriptor)
float m_ProjectionClip
Clipping threshold value for the projection.
A FullyConnectedDescriptor for the FullyConnectedLayer.
bool m_BiasEnabled
Enable/disable bias.
IConnectableLayer * AddFullyConnectedLayer(const FullyConnectedDescriptor &fullyConnectedDescriptor, const Optional< ConstTensor > &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
bool m_PeepholeEnabled
Enable/disable peephole.
void CheckDescriptor(const Convolution2dDescriptor &convolution2dDescriptor)
A QLstmDescriptor for the QLstmLayer.
void CheckInputParameters(const LstmInputParams &inputParams)
BOOST_AUTO_TEST_CASE(CheckConvolution2dLayer)
void CheckInputParameters(const QuantizedLstmInputParams &inputParams)
uint32_t m_ActivationFunc
The activation function to use.
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
void CheckDescriptor(const DepthwiseConvolution2dDescriptor &convolution2dDescriptor)
float m_ClippingThresCell
Clipping threshold value for the cell state.
float m_CellClip
Clipping threshold value for the cell state.
BOOST_AUTO_TEST_SUITE_END()
bool m_CifgEnabled
Enable/disable cifg (coupled input & forget gate).
EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...
uint32_t m_StrideY
Stride value when proceeding through input for the height dimension.
virtual void Accept(ILayerVisitor &visitor) const =0
Apply a visitor to this layer.
bool m_ProjectionEnabled
Enable/disable the projection layer.
void CheckConstTensorPtrs(const std::string &name, const ConstTensor *expected, const ConstTensor *actual)
IConnectableLayer * AddBatchNormalizationLayer(const BatchNormalizationDescriptor &desc, const ConstTensor &mean, const ConstTensor &variance, const ConstTensor &beta, const ConstTensor &gamma, const char *name=nullptr)
void CheckConstTensorPtrs(const std::string &name, const ConstTensor *expected, const ConstTensor *actual)
IConnectableLayer * AddConvolution2dLayer(const Convolution2dDescriptor &convolution2dDescriptor, const ConstTensor &weights, const Optional< ConstTensor > &biases, const char *name=nullptr)
IConnectableLayer * AddLstmLayer(const LstmDescriptor &descriptor, const LstmInputParams ¶ms, const char *name=nullptr)
bool m_CifgEnabled
Enable/disable CIFG (coupled input & forget gate).
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
uint32_t m_PadLeft
Padding left value in the width dimension.
uint32_t m_PadRight
Padding right value in the width dimension.