13 explicit SimpleConv2DFixture()
18 "operator_codes": [ { "builtin_code": "CONV_2D" } ], 22 "shape": [ 1, 3, 3, 1 ], 25 "name": "inputTensor", 34 "shape": [ 1, 1, 1, 1 ], 37 "name": "outputTensor", 46 "shape": [ 1, 3, 3, 1 ], 49 "name": "filterTensor", 65 "builtin_options_type": "Conv2DOptions", 70 "fused_activation_function": "NONE" 72 "custom_options_format": "FLEXBUFFERS" 79 { "data": [ 2,1,0, 6,2,1, 4,1,2 ], }, 90 RunTest<4, armnn::DataType::QAsymmU8>(
107 explicit Conv2DWithBiasesFixture(
const std::string & inputShape,
108 const std::string & outputShape,
109 const std::string & filterShape,
110 const std::string & filterData,
111 const std::string & biasShape,
112 const std::string & biasData,
113 const std::string & strides,
114 const std::string & activation=
"NONE",
115 const std::string & filterScale=
"1.0",
116 const std::string & filterZeroPoint=
"0",
117 const std::string & outputScale=
"2.0",
118 const std::string & outputZeroPoint=
"0")
123 "operator_codes": [ { "builtin_code": "CONV_2D" } ], 127 "shape": )" + inputShape + R"(, 130 "name": "inputTensor", 139 "shape": )" + outputShape + R"(, 142 "name": "outputTensor", 146 "scale": [ )" + outputScale + R"( ], 147 "zero_point": [ )" + outputZeroPoint + R"( ], 151 "shape": )" + filterShape + R"( , 154 "name": "filterTensor", 158 "scale": [ )" + filterScale + R"( ], 159 "zero_point": [ )" + filterZeroPoint + R"( ], 163 "shape": )" + biasShape + R"( , 166 "name": "biasTensor", 180 "inputs": [ 0, 2, 3 ], 182 "builtin_options_type": "Conv2DOptions", 185 "stride_w": )" + strides + R"(, 186 "stride_h": )" + strides + R"(, 187 "fused_activation_function": )" + activation + R"( 189 "custom_options_format": "FLEXBUFFERS" 196 { "data": )" + filterData + R"(, }, 197 { "data": )" + biasData + R"(, }, 201 SetupSingleInputSingleOutput("inputTensor",
"outputTensor");
205 struct SimpleConv2DWithBiasesFixture : Conv2DWithBiasesFixture
207 SimpleConv2DWithBiasesFixture()
208 : Conv2DWithBiasesFixture(
"[ 1, 2, 2, 1 ]",
220 RunTest<4, armnn::DataType::QAsymmU8>(
228 (1*2 + 2*1 + 3*0 + 4*6 + 10)/2,
229 (2*2 + 0*1 + 4*0 + 0*6 + 10)/2,
230 (3*2 + 4*1 + 0*0 + 0*6 + 10)/2,
231 (4*2 + 0*1 + 0*0 + 0*6 + 10)/2
235 struct DynamicConv2DWithBiasesFixture : Conv2DWithBiasesFixture
237 DynamicConv2DWithBiasesFixture()
238 : Conv2DWithBiasesFixture(
"[ 1, 2, 2, 1 ]",
252 armnn::DataType::QAsymmU8>(0,
253 { {
"inputTensor", { 1, 2, 3, 4, } } },
254 { {
"outputTensor", { (1*2 + 2*1 + 3*0 + 4*6 + 10)/2,
255 (2*2 + 0*1 + 4*0 + 0*6 + 10)/2,
256 (3*2 + 4*1 + 0*0 + 0*6 + 10)/2,
257 (4*2 + 0*1 + 0*0 + 0*6 + 10)/2} } },
261 struct Conv2DShapeTestFixture : Conv2DWithBiasesFixture
263 static std::string GenerateInts(
unsigned int n)
265 std::stringstream ss;
267 for(
unsigned int i=0; i<n; ++i ) {
272 ss <<
" " << (i%256);
278 Conv2DShapeTestFixture()
279 : Conv2DWithBiasesFixture(
"[ 1, 224, 224, 3 ]",
280 "[ 1, 112, 112, 32 ]",
282 GenerateInts(32*3*3*3),
293 struct ReluConv2DWithBiasesFixture : Conv2DWithBiasesFixture
295 ReluConv2DWithBiasesFixture()
296 : Conv2DWithBiasesFixture(
"[ 1, 2, 2, 1 ]",
314 uint8_t outZero = 20;
317 RunTest<4, armnn::DataType::QAsymmU8>(
329 std::max(outZero, static_cast<uint8_t>((1*(2-fz) + 2*(1-fz) + 4*(0-fz) + 8*(6-fz) + bias)/2 + outZero)),
330 std::max(outZero, static_cast<uint8_t>((2*(2-fz) + 0*(1-fz) + 8*(0-fz) + 0*(6-fz) + bias)/2 + outZero)),
331 std::max(outZero, static_cast<uint8_t>((4*(2-fz) + 8*(1-fz) + 0*(0-fz) + 0*(6-fz) + bias)/2 + outZero)),
332 std::max(outZero, static_cast<uint8_t>((8*(2-fz) + 0*(1-fz) + 0*(0-fz) + 0*(6-fz) + bias)/2 + outZero))
336 struct Relu6Conv2DWithBiasesFixture : Conv2DWithBiasesFixture
338 Relu6Conv2DWithBiasesFixture()
339 : Conv2DWithBiasesFixture(
"[ 1, 2, 2, 1 ]",
356 uint8_t relu6Min = 6 / 2;
358 RunTest<4, armnn::DataType::QAsymmU8>(
368 std::min(relu6Min, static_cast<uint8_t>((1*2 + 2*1 + 4*0 + 1*6)/2)),
369 std::min(relu6Min, static_cast<uint8_t>((2*2 + 0*1 + 1*0 + 0*6)/2)),
370 std::min(relu6Min, static_cast<uint8_t>((4*2 + 1*1 + 0*0 + 0*6)/2)),
371 std::min(relu6Min, static_cast<uint8_t>((1*2 + 0*1 + 0*0 + 0*6)/2))
378 explicit PerChannelConv2DFixture()
385 "builtin_code": "CONV_2D", 415 "details_type": "NONE", 416 "quantized_dimension": 0 426 "name": "model/conv2d/Conv2D", 440 "details_type": "NONE", 441 "quantized_dimension": 0 454 "name": "model/conv2d/Conv2D1", 480 "details_type": "NONE", 481 "quantized_dimension": 0 508 "details_type": "NONE", 509 "quantized_dimension": 0 531 "builtin_options_type": "Conv2DOptions", 536 "fused_activation_function": "NONE", 537 "dilation_w_factor": 1, 538 "dilation_h_factor": 1 540 "custom_options_format": "FLEXBUFFERS" 546 "description": "MLIR Converted.", 633 "name": "min_runtime_version", 639 SetupSingleInputSingleOutput("input",
"Identity");
645 RunTest<4, armnn::DataType::QAsymmS8>(
648 -11, 40,-26, 11,-28, 8, 0, -8,
649 -10, 34, 47, 0,-33,-14, 28, 35,
650 6,-28,-26, 8, 13, 33,-31,-41,
651 31,-20,-31,-16, 8,-18,-44, 0
654 -21,-17,-23,-14, -1,-14, 1, 9,
655 1,-12,-22,-23, 2, -1, -3, 12,
656 7, 6, 8,-13,-21, -6,-31, 0,
657 9, -6, 24, 0,-22, -4, -7,-22,
658 -7, -9, 9, 11,-11,-16, 9,-27,
659 -1, 0,-26, 0, 9,-12, -8,-18,
660 -11, -3,-15, 7, 16, -2, -8, -7,
661 -14,-15,-14, 3, 9,-12, -6,-11
TEST_CASE_FIXTURE(ClContextControlFixture, "CopyBetweenNeonAndGpu")
void SetupSingleInputSingleOutput(const std::string &inputName, const std::string &outputName)