13 explicit FullyConnectedFixture(
const std::string& inputShape,
14 const std::string& outputShape,
15 const std::string& filterShape,
16 const std::string& filterData,
17 const std::string biasShape =
"",
18 const std::string biasData =
"")
20 std::string inputTensors =
"[ 0, 2 ]";
21 std::string biasTensor =
"";
22 std::string biasBuffer =
"";
23 if (biasShape.size() > 0 && biasData.size() > 0)
25 inputTensors =
"[ 0, 2, 3 ]";
28 "shape": )" + biasShape + R"( , 40 { "data": )" + biasData + R"(, }, )"; 45 "operator_codes": [ { "builtin_code": "FULLY_CONNECTED" } ], 49 "shape": )" + inputShape + R"(, 52 "name": "inputTensor", 61 "shape": )" + outputShape + R"(, 64 "name": "outputTensor", 73 "shape": )" + filterShape + R"(, 76 "name": "filterTensor", 83 }, )" + biasTensor + R"( 90 "inputs": )" + inputTensors + R"(, 92 "builtin_options_type": "FullyConnectedOptions", 94 "fused_activation_function": "NONE" 96 "custom_options_format": "FLEXBUFFERS" 103 { "data": )" + filterData + R"(, }, )" 112 struct FullyConnectedWithNoBiasFixture : FullyConnectedFixture
114 FullyConnectedWithNoBiasFixture()
115 : FullyConnectedFixture(
"[ 1, 4, 1, 1 ]",
124 RunTest<2, armnn::DataType::QAsymmU8>(
130 struct FullyConnectedWithBiasFixture : FullyConnectedFixture
132 FullyConnectedWithBiasFixture()
133 : FullyConnectedFixture(
"[ 1, 4, 1, 1 ]",
144 RunTest<2, armnn::DataType::QAsymmU8>(
150 struct FullyConnectedWithBiasMultipleOutputsFixture : FullyConnectedFixture
152 FullyConnectedWithBiasMultipleOutputsFixture()
153 : FullyConnectedFixture(
"[ 1, 4, 2, 1 ]",
162 TEST_CASE_FIXTURE(FullyConnectedWithBiasMultipleOutputsFixture,
"FullyConnectedWithBiasMultipleOutputs")
164 RunTest<2, armnn::DataType::QAsymmU8>(
166 { 1, 2, 3, 4, 10, 20, 30, 40 },
167 { (40+10)/2, (400+10)/2 });
170 struct DynamicFullyConnectedWithBiasMultipleOutputsFixture : FullyConnectedFixture
172 DynamicFullyConnectedWithBiasMultipleOutputsFixture()
173 : FullyConnectedFixture(
"[ 1, 4, 2, 1 ]",
183 DynamicFullyConnectedWithBiasMultipleOutputsFixture,
"DynamicFullyConnectedWithBiasMultipleOutputs")
187 armnn::DataType::QAsymmU8>(0,
188 { {
"inputTensor", { 1, 2, 3, 4, 10, 20, 30, 40} } },
189 { {
"outputTensor", { (40+10)/2, (400+10)/2 } } },
196 explicit FullyConnectedNonConstWeightsFixture(
const std::string& inputShape,
197 const std::string& outputShape,
198 const std::string& filterShape,
199 const std::string biasShape =
"")
201 std::string inputTensors =
"[ 0, 1 ]";
202 std::string biasTensor =
"";
203 std::string biasBuffer =
"";
204 std::string outputs =
"2";
205 if (biasShape.size() > 0)
207 inputTensors =
"[ 0, 1, 2 ]";
210 "shape": )" + biasShape + R"(, 218 "quantized_dimension": 0 223 biasBuffer = R"(,{ "data": [] } )"; 231 "builtin_code": "FULLY_CONNECTED", 239 "shape": )" + inputShape + R"(, 247 "quantized_dimension": 0 251 "shape": )" + filterShape + R"(, 259 "quantized_dimension": 0 262 )" + biasTensor + R"( 264 "shape": )" + outputShape + R"(, 276 "quantized_dimension": 0 280 "inputs": )" + inputTensors + R"(, 281 "outputs": [ )" + outputs + R"( ], 285 "inputs": )" + inputTensors + R"(, 286 "outputs": [ )" + outputs + R"( ], 287 "builtin_options_type": "FullyConnectedOptions", 289 "fused_activation_function": "NONE", 290 "weights_format": "DEFAULT", 291 "keep_num_dims": false, 292 "asymmetric_quantize_inputs": false 294 "custom_options_format": "FLEXBUFFERS" 299 "description": "ArmnnDelegate: FullyConnected Operator Model", 307 )" + biasBuffer + R"( 315 struct FullyConnectedNonConstWeights : FullyConnectedNonConstWeightsFixture
317 FullyConnectedNonConstWeights()
318 : FullyConnectedNonConstWeightsFixture(
"[ 1, 4, 1, 1 ]",
326 TEST_CASE_FIXTURE(FullyConnectedNonConstWeights,
"ParseFullyConnectedNonConstWeights")
330 armnn::DataType::QAsymmS8>(
332 {{{
"input_0", { 1, 2, 3, 4 }},{
"weights", { 2, 3, 4, 5 }}}},
334 {{
"output", { 25 }}});
337 struct FullyConnectedNonConstWeightsNoBias : FullyConnectedNonConstWeightsFixture
339 FullyConnectedNonConstWeightsNoBias()
340 : FullyConnectedNonConstWeightsFixture(
"[ 1, 4, 1, 1 ]",
347 TEST_CASE_FIXTURE(FullyConnectedNonConstWeightsNoBias,
"ParseFullyConnectedNonConstWeightsNoBias")
350 armnn::DataType::QAsymmS8>(
352 {{{
"input_0", { 1, 2, 3, 4 }},{
"weights", { 2, 3, 4, 5 }}}},
353 {{
"output", { 20 }}});
TEST_CASE_FIXTURE(ClContextControlFixture, "CopyBetweenNeonAndGpu")
void SetupSingleInputSingleOutput(const std::string &inputName, const std::string &outputName)