10 #if defined(ARMNN_POST_TFLITE_2_3) 15 explicit SimpleConv3DFixture()
20 "operator_codes": [ { "builtin_code": "CONV_3D" } ], 24 "shape": [ 1, 2, 3, 3, 1 ], 27 "name": "inputTensor", 36 "shape": [ 1, 1, 1, 1, 1 ], 39 "name": "outputTensor", 48 "shape": [ 2, 3, 3, 1, 1 ], 51 "name": "filterTensor", 67 "builtin_options_type": "Conv3DOptions", 73 "fused_activation_function": "NONE" 75 "custom_options_format": "FLEXBUFFERS" 82 { "data": [ 2,1,0, 6,2,1, 4,1,2, 83 1,2,1, 2,0,2, 2,1,1 ], }, 94 RunTest<5, armnn::DataType::QAsymmU8>(
113 16*2 + 17*1 + 18*1) /2
118 explicit Conv3DWithBiasesFixture(
const std::string& inputShape,
119 const std::string& outputShape,
120 const std::string& filterShape,
121 const std::string& filterData,
122 const std::string& biasShape,
123 const std::string& biasData,
124 const std::string& strides,
125 const std::string& activation=
"NONE",
126 const std::string& filterScale=
"1.0",
127 const std::string& filterZeroPoint=
"0",
128 const std::string& outputScale=
"1.0",
129 const std::string& outputZeroPoint=
"0")
134 "operator_codes": [ { "builtin_code": "CONV_3D" } ], 138 "shape": )" + inputShape + R"(, 141 "name": "inputTensor", 150 "shape": )" + outputShape + R"(, 153 "name": "outputTensor", 157 "scale": [ )" + outputScale + R"( ], 158 "zero_point": [ )" + outputZeroPoint + R"( ], 162 "shape": )" + filterShape + R"( , 165 "name": "filterTensor", 169 "scale": [ )" + filterScale + R"( ], 170 "zero_point": [ )" + filterZeroPoint + R"( ], 174 "shape": )" + biasShape + R"( , 177 "name": "biasTensor", 191 "inputs": [ 0, 2, 3 ], 193 "builtin_options_type": "Conv3DOptions", 196 "stride_d": )" + strides + R"(, 197 "stride_w": )" + strides + R"(, 198 "stride_h": )" + strides + R"(, 199 "fused_activation_function": )" + activation + R"( 201 "custom_options_format": "FLEXBUFFERS" 208 { "data": )" + filterData + R"(, }, 209 { "data": )" + biasData + R"(, }, 213 SetupSingleInputSingleOutput("inputTensor",
"outputTensor");
217 struct SimpleConv3DWithBiasesFixture : Conv3DWithBiasesFixture
219 SimpleConv3DWithBiasesFixture()
220 : Conv3DWithBiasesFixture(
"[ 1, 2, 2, 2, 1 ]",
223 "[ 2,1, 1,0, 0,1, 1,1 ]",
234 { 1, 2, 3, 4, 5, 6, 7, 8 },
235 { 33, 21, 23, 13, 28, 25, 27, 21 });
242 armnn::DataType::QAsymmU8>(0,
243 { {
"inputTensor", { 2, 4, 6, 8, 10, 12, 14, 16 } } },
244 { {
"outputTensor", { 61, 37, 41, 21, 51, 45, 49, 37 } } },
248 struct Relu6Conv3DWithBiasesFixture : Conv3DWithBiasesFixture
250 Relu6Conv3DWithBiasesFixture()
251 : Conv3DWithBiasesFixture(
"[ 1, 2, 2, 2, 1 ]",
254 "[ 2,1, 1,0, 0,1, 1,1 ]",
268 uint8_t relu6Min = 6 / 2;
270 RunTest<5, armnn::DataType::QAsymmU8>(
273 1, 2, 3, 4, 5, 6, 7, 8
277 std::min(relu6Min, static_cast<uint8_t>((1*2 + 2*1 + 3*1 + 4*0 + 5*0 + 6*1 + 7*1 + 8*1)/2)),
278 std::min(relu6Min, static_cast<uint8_t>((2*2 + 0*1 + 0*1 + 0*0 + 0*0 + 0*1 + 8*1 + 0*1)/2)),
279 std::min(relu6Min, static_cast<uint8_t>((3*2 + 0*1 + 0*1 + 0*0 + 0*0 + 8*1 + 0*1 + 0*1)/2)),
280 std::min(relu6Min, static_cast<uint8_t>((4*2 + 0*1 + 0*1 + 0*0 + 8*0 + 0*1 + 0*1 + 0*1)/2)),
281 std::min(relu6Min, static_cast<uint8_t>((5*2 + 0*1 + 0*1 + 8*0 + 0*0 + 0*1 + 0*1 + 0*1)/2)),
282 std::min(relu6Min, static_cast<uint8_t>((6*2 + 0*1 + 8*1 + 0*0 + 0*0 + 0*1 + 0*1 + 0*1)/2)),
283 std::min(relu6Min, static_cast<uint8_t>((7*2 + 8*1 + 0*1 + 0*0 + 0*0 + 0*1 + 0*1 + 0*1)/2)),
284 std::min(relu6Min, static_cast<uint8_t>((8*2 + 0*1 + 0*1 + 0*0 + 0*0 + 0*1 + 0*1 + 0*1)/2))
TEST_SUITE("TestConstTensorLayerVisitor")
TEST_CASE_FIXTURE(ClContextControlFixture, "CopyBetweenNeonAndGpu")
void SetupSingleInputSingleOutput(const std::string &inputName, const std::string &outputName)