1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #include "ParserFlatbuffersFixture.hpp" 7*89c4ff92SAndroid Build Coastguard Worker 8*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("TensorflowLiteParser_TransposeConv") 9*89c4ff92SAndroid Build Coastguard Worker { 10*89c4ff92SAndroid Build Coastguard Worker struct TransposeConvFixture : public ParserFlatbuffersFixture 11*89c4ff92SAndroid Build Coastguard Worker { TransposeConvFixtureTransposeConvFixture12*89c4ff92SAndroid Build Coastguard Worker explicit TransposeConvFixture(const std::string& inputShape, 13*89c4ff92SAndroid Build Coastguard Worker const std::string& outputShape, 14*89c4ff92SAndroid Build Coastguard Worker const std::string& filterShape, 15*89c4ff92SAndroid Build Coastguard Worker const std::string& filterData, 16*89c4ff92SAndroid Build Coastguard Worker const std::string& strideX, 17*89c4ff92SAndroid Build Coastguard Worker const std::string& strideY, 18*89c4ff92SAndroid Build Coastguard Worker const std::string& dataType) 19*89c4ff92SAndroid Build Coastguard Worker { 20*89c4ff92SAndroid Build Coastguard Worker m_JsonString = R"( 21*89c4ff92SAndroid Build Coastguard Worker { 22*89c4ff92SAndroid Build Coastguard Worker "version": 3, 23*89c4ff92SAndroid Build Coastguard Worker "operator_codes": [ { "builtin_code": "TRANSPOSE_CONV" } ], 24*89c4ff92SAndroid Build Coastguard Worker "subgraphs": [ { 25*89c4ff92SAndroid Build Coastguard Worker "tensors": [ 26*89c4ff92SAndroid Build Coastguard Worker { 27*89c4ff92SAndroid Build Coastguard Worker "shape": [ 4 ], 28*89c4ff92SAndroid Build Coastguard Worker "type": "UINT8", 29*89c4ff92SAndroid Build Coastguard Worker "buffer": 0, 30*89c4ff92SAndroid Build Coastguard Worker "name": "outputShapeTensor", 31*89c4ff92SAndroid Build Coastguard Worker "quantization": { 32*89c4ff92SAndroid Build Coastguard Worker "min": [ 0.0 ], 33*89c4ff92SAndroid Build Coastguard Worker "max": [ 255.0 ], 34*89c4ff92SAndroid Build Coastguard Worker "scale": [ 1.0 ], 35*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 0 ], 36*89c4ff92SAndroid Build Coastguard Worker } 37*89c4ff92SAndroid Build Coastguard Worker }, 38*89c4ff92SAndroid Build Coastguard Worker { 39*89c4ff92SAndroid Build Coastguard Worker "shape": )" + filterShape + R"(, 40*89c4ff92SAndroid Build Coastguard Worker "type": ")" + dataType + R"(", 41*89c4ff92SAndroid Build Coastguard Worker "buffer": 1, 42*89c4ff92SAndroid Build Coastguard Worker "name": "filterTensor", 43*89c4ff92SAndroid Build Coastguard Worker "quantization": { 44*89c4ff92SAndroid Build Coastguard Worker "min": [ 0.0 ], 45*89c4ff92SAndroid Build Coastguard Worker "max": [ 255.0 ], 46*89c4ff92SAndroid Build Coastguard Worker "scale": [ 1.0 ], 47*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 0 ], 48*89c4ff92SAndroid Build Coastguard Worker } 49*89c4ff92SAndroid Build Coastguard Worker }, 50*89c4ff92SAndroid Build Coastguard Worker { 51*89c4ff92SAndroid Build Coastguard Worker "shape": )" + inputShape + R"(, 52*89c4ff92SAndroid Build Coastguard Worker "type": ")" + dataType + R"(", 53*89c4ff92SAndroid Build Coastguard Worker "buffer": 2, 54*89c4ff92SAndroid Build Coastguard Worker "name": "inputTensor", 55*89c4ff92SAndroid Build Coastguard Worker "quantization": { 56*89c4ff92SAndroid Build Coastguard Worker "min": [ 0.0 ], 57*89c4ff92SAndroid Build Coastguard Worker "max": [ 255.0 ], 58*89c4ff92SAndroid Build Coastguard Worker "scale": [ 1.0 ], 59*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 0 ], 60*89c4ff92SAndroid Build Coastguard Worker } 61*89c4ff92SAndroid Build Coastguard Worker }, 62*89c4ff92SAndroid Build Coastguard Worker { 63*89c4ff92SAndroid Build Coastguard Worker "shape": )" + outputShape + R"(, 64*89c4ff92SAndroid Build Coastguard Worker "type": ")" + dataType + R"(", 65*89c4ff92SAndroid Build Coastguard Worker "buffer": 3, 66*89c4ff92SAndroid Build Coastguard Worker "name": "outputTensor", 67*89c4ff92SAndroid Build Coastguard Worker "quantization": { 68*89c4ff92SAndroid Build Coastguard Worker "min": [ 0.0 ], 69*89c4ff92SAndroid Build Coastguard Worker "max": [ 255.0 ], 70*89c4ff92SAndroid Build Coastguard Worker "scale": [ 1.0 ], 71*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 0 ], 72*89c4ff92SAndroid Build Coastguard Worker } 73*89c4ff92SAndroid Build Coastguard Worker } 74*89c4ff92SAndroid Build Coastguard Worker ], 75*89c4ff92SAndroid Build Coastguard Worker "inputs": [ 2 ], 76*89c4ff92SAndroid Build Coastguard Worker "outputs": [ 3 ], 77*89c4ff92SAndroid Build Coastguard Worker "operators": [ 78*89c4ff92SAndroid Build Coastguard Worker { 79*89c4ff92SAndroid Build Coastguard Worker "opcode_index": 0, 80*89c4ff92SAndroid Build Coastguard Worker "inputs": [ 0, 1, 2 ], 81*89c4ff92SAndroid Build Coastguard Worker "outputs": [ 3 ], 82*89c4ff92SAndroid Build Coastguard Worker "builtin_options_type": "TransposeConvOptions", 83*89c4ff92SAndroid Build Coastguard Worker "builtin_options": { 84*89c4ff92SAndroid Build Coastguard Worker "padding": "VALID", 85*89c4ff92SAndroid Build Coastguard Worker "stride_w": )" + strideX + R"(, 86*89c4ff92SAndroid Build Coastguard Worker "stride_h": )" + strideY + R"( 87*89c4ff92SAndroid Build Coastguard Worker }, 88*89c4ff92SAndroid Build Coastguard Worker "custom_options_format": "FLEXBUFFERS" 89*89c4ff92SAndroid Build Coastguard Worker } 90*89c4ff92SAndroid Build Coastguard Worker ], 91*89c4ff92SAndroid Build Coastguard Worker } ], 92*89c4ff92SAndroid Build Coastguard Worker "buffers" : [ 93*89c4ff92SAndroid Build Coastguard Worker { "data": )" + outputShape + R"( }, 94*89c4ff92SAndroid Build Coastguard Worker { "data": )" + filterData + R"( }, 95*89c4ff92SAndroid Build Coastguard Worker { }, 96*89c4ff92SAndroid Build Coastguard Worker { } 97*89c4ff92SAndroid Build Coastguard Worker ] 98*89c4ff92SAndroid Build Coastguard Worker } 99*89c4ff92SAndroid Build Coastguard Worker )"; 100*89c4ff92SAndroid Build Coastguard Worker SetupSingleInputSingleOutput("inputTensor", "outputTensor"); 101*89c4ff92SAndroid Build Coastguard Worker } 102*89c4ff92SAndroid Build Coastguard Worker }; 103*89c4ff92SAndroid Build Coastguard Worker 104*89c4ff92SAndroid Build Coastguard Worker struct SimpleTransposeConvFixture : TransposeConvFixture 105*89c4ff92SAndroid Build Coastguard Worker { SimpleTransposeConvFixtureSimpleTransposeConvFixture106*89c4ff92SAndroid Build Coastguard Worker SimpleTransposeConvFixture() 107*89c4ff92SAndroid Build Coastguard Worker : TransposeConvFixture("[ 1, 2, 2, 1 ]", // inputShape 108*89c4ff92SAndroid Build Coastguard Worker "[ 1, 3, 3, 1 ]", // outputShape 109*89c4ff92SAndroid Build Coastguard Worker "[ 1, 2, 2, 1 ]", // filterShape 110*89c4ff92SAndroid Build Coastguard Worker "[ 0, 1, 2, 4 ]", // filterData 111*89c4ff92SAndroid Build Coastguard Worker "1", // strideX 112*89c4ff92SAndroid Build Coastguard Worker "1", // strideY 113*89c4ff92SAndroid Build Coastguard Worker "UINT8") // dataType 114*89c4ff92SAndroid Build Coastguard Worker {} 115*89c4ff92SAndroid Build Coastguard Worker }; 116*89c4ff92SAndroid Build Coastguard Worker 117*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(SimpleTransposeConvFixture, "ParseSimpleTransposeConv") 118*89c4ff92SAndroid Build Coastguard Worker { 119*89c4ff92SAndroid Build Coastguard Worker RunTest<4, armnn::DataType::QAsymmU8>( 120*89c4ff92SAndroid Build Coastguard Worker 0, 121*89c4ff92SAndroid Build Coastguard Worker { 122*89c4ff92SAndroid Build Coastguard Worker 1, 2, 123*89c4ff92SAndroid Build Coastguard Worker 3, 4 124*89c4ff92SAndroid Build Coastguard Worker }, 125*89c4ff92SAndroid Build Coastguard Worker { 126*89c4ff92SAndroid Build Coastguard Worker 0, 1, 2, 127*89c4ff92SAndroid Build Coastguard Worker 2, 11, 12, 128*89c4ff92SAndroid Build Coastguard Worker 6, 20, 16 129*89c4ff92SAndroid Build Coastguard Worker }); 130*89c4ff92SAndroid Build Coastguard Worker } 131*89c4ff92SAndroid Build Coastguard Worker 132*89c4ff92SAndroid Build Coastguard Worker struct TransposeConvFixtureWithBias : public ParserFlatbuffersFixture 133*89c4ff92SAndroid Build Coastguard Worker { TransposeConvFixtureWithBiasTransposeConvFixtureWithBias134*89c4ff92SAndroid Build Coastguard Worker explicit TransposeConvFixtureWithBias(const std::string& inputShape, 135*89c4ff92SAndroid Build Coastguard Worker const std::string& outputShape, 136*89c4ff92SAndroid Build Coastguard Worker const std::string& filterShape, 137*89c4ff92SAndroid Build Coastguard Worker const std::string& filterData, 138*89c4ff92SAndroid Build Coastguard Worker const std::string& strideX, 139*89c4ff92SAndroid Build Coastguard Worker const std::string& strideY, 140*89c4ff92SAndroid Build Coastguard Worker const std::string& dataType, 141*89c4ff92SAndroid Build Coastguard Worker const std::string& biasShape, 142*89c4ff92SAndroid Build Coastguard Worker const std::string& biasData) 143*89c4ff92SAndroid Build Coastguard Worker { 144*89c4ff92SAndroid Build Coastguard Worker m_JsonString = R"( 145*89c4ff92SAndroid Build Coastguard Worker { 146*89c4ff92SAndroid Build Coastguard Worker "version": 3, 147*89c4ff92SAndroid Build Coastguard Worker "operator_codes": [ { "builtin_code": "TRANSPOSE_CONV" } ], 148*89c4ff92SAndroid Build Coastguard Worker "subgraphs": [ { 149*89c4ff92SAndroid Build Coastguard Worker "tensors": [ 150*89c4ff92SAndroid Build Coastguard Worker { 151*89c4ff92SAndroid Build Coastguard Worker "shape": [ 4 ], 152*89c4ff92SAndroid Build Coastguard Worker "type": "UINT8", 153*89c4ff92SAndroid Build Coastguard Worker "buffer": 0, 154*89c4ff92SAndroid Build Coastguard Worker "name": "outputShapeTensor", 155*89c4ff92SAndroid Build Coastguard Worker "quantization": { 156*89c4ff92SAndroid Build Coastguard Worker "min": [ 0.0 ], 157*89c4ff92SAndroid Build Coastguard Worker "max": [ 255.0 ], 158*89c4ff92SAndroid Build Coastguard Worker "scale": [ 1.0 ], 159*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 0 ], 160*89c4ff92SAndroid Build Coastguard Worker } 161*89c4ff92SAndroid Build Coastguard Worker }, 162*89c4ff92SAndroid Build Coastguard Worker { 163*89c4ff92SAndroid Build Coastguard Worker "shape": )" + filterShape + R"(, 164*89c4ff92SAndroid Build Coastguard Worker "type": ")" + dataType + R"(", 165*89c4ff92SAndroid Build Coastguard Worker "buffer": 1, 166*89c4ff92SAndroid Build Coastguard Worker "name": "filterTensor", 167*89c4ff92SAndroid Build Coastguard Worker "quantization": { 168*89c4ff92SAndroid Build Coastguard Worker "min": [ 0.0 ], 169*89c4ff92SAndroid Build Coastguard Worker "max": [ 255.0 ], 170*89c4ff92SAndroid Build Coastguard Worker "scale": [ 1.0 ], 171*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 0 ], 172*89c4ff92SAndroid Build Coastguard Worker } 173*89c4ff92SAndroid Build Coastguard Worker }, 174*89c4ff92SAndroid Build Coastguard Worker { 175*89c4ff92SAndroid Build Coastguard Worker "shape": )" + inputShape + R"(, 176*89c4ff92SAndroid Build Coastguard Worker "type": ")" + dataType + R"(", 177*89c4ff92SAndroid Build Coastguard Worker "buffer": 2, 178*89c4ff92SAndroid Build Coastguard Worker "name": "inputTensor", 179*89c4ff92SAndroid Build Coastguard Worker "quantization": { 180*89c4ff92SAndroid Build Coastguard Worker "min": [ 0.0 ], 181*89c4ff92SAndroid Build Coastguard Worker "max": [ 255.0 ], 182*89c4ff92SAndroid Build Coastguard Worker "scale": [ 1.0 ], 183*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 0 ], 184*89c4ff92SAndroid Build Coastguard Worker } 185*89c4ff92SAndroid Build Coastguard Worker }, 186*89c4ff92SAndroid Build Coastguard Worker { 187*89c4ff92SAndroid Build Coastguard Worker "shape": )" + biasShape + R"( , 188*89c4ff92SAndroid Build Coastguard Worker "type": "INT32", 189*89c4ff92SAndroid Build Coastguard Worker "buffer": 3, 190*89c4ff92SAndroid Build Coastguard Worker "name": "biasTensor", 191*89c4ff92SAndroid Build Coastguard Worker "quantization": { 192*89c4ff92SAndroid Build Coastguard Worker "min": [ 0.0 ], 193*89c4ff92SAndroid Build Coastguard Worker "max": [ 255.0 ], 194*89c4ff92SAndroid Build Coastguard Worker "scale": [ 1.0 ], 195*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 0 ], 196*89c4ff92SAndroid Build Coastguard Worker } 197*89c4ff92SAndroid Build Coastguard Worker }, 198*89c4ff92SAndroid Build Coastguard Worker { 199*89c4ff92SAndroid Build Coastguard Worker "shape": )" + outputShape + R"(, 200*89c4ff92SAndroid Build Coastguard Worker "type": ")" + dataType + R"(", 201*89c4ff92SAndroid Build Coastguard Worker "buffer": 4, 202*89c4ff92SAndroid Build Coastguard Worker "name": "outputTensor", 203*89c4ff92SAndroid Build Coastguard Worker "quantization": { 204*89c4ff92SAndroid Build Coastguard Worker "min": [ 0.0 ], 205*89c4ff92SAndroid Build Coastguard Worker "max": [ 255.0 ], 206*89c4ff92SAndroid Build Coastguard Worker "scale": [ 1.0 ], 207*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 0 ], 208*89c4ff92SAndroid Build Coastguard Worker } 209*89c4ff92SAndroid Build Coastguard Worker } 210*89c4ff92SAndroid Build Coastguard Worker ], 211*89c4ff92SAndroid Build Coastguard Worker "inputs": [ 2 ], 212*89c4ff92SAndroid Build Coastguard Worker "outputs": [ 4 ], 213*89c4ff92SAndroid Build Coastguard Worker "operators": [ 214*89c4ff92SAndroid Build Coastguard Worker { 215*89c4ff92SAndroid Build Coastguard Worker "opcode_index": 0, 216*89c4ff92SAndroid Build Coastguard Worker "inputs": [ 0, 1, 2, 3], 217*89c4ff92SAndroid Build Coastguard Worker "outputs": [ 4 ], 218*89c4ff92SAndroid Build Coastguard Worker "builtin_options_type": "TransposeConvOptions", 219*89c4ff92SAndroid Build Coastguard Worker "builtin_options": { 220*89c4ff92SAndroid Build Coastguard Worker "padding": "VALID", 221*89c4ff92SAndroid Build Coastguard Worker "stride_w": )" + strideX + R"(, 222*89c4ff92SAndroid Build Coastguard Worker "stride_h": )" + strideY + R"( 223*89c4ff92SAndroid Build Coastguard Worker }, 224*89c4ff92SAndroid Build Coastguard Worker "custom_options_format": "FLEXBUFFERS" 225*89c4ff92SAndroid Build Coastguard Worker } 226*89c4ff92SAndroid Build Coastguard Worker ], 227*89c4ff92SAndroid Build Coastguard Worker } ], 228*89c4ff92SAndroid Build Coastguard Worker "buffers" : [ 229*89c4ff92SAndroid Build Coastguard Worker { "data": )" + outputShape + R"( }, 230*89c4ff92SAndroid Build Coastguard Worker { "data": )" + filterData + R"( }, 231*89c4ff92SAndroid Build Coastguard Worker { }, 232*89c4ff92SAndroid Build Coastguard Worker { "data": )" + biasData + R"( }, 233*89c4ff92SAndroid Build Coastguard Worker { } 234*89c4ff92SAndroid Build Coastguard Worker ] 235*89c4ff92SAndroid Build Coastguard Worker } 236*89c4ff92SAndroid Build Coastguard Worker )"; 237*89c4ff92SAndroid Build Coastguard Worker SetupSingleInputSingleOutput("inputTensor", "outputTensor"); 238*89c4ff92SAndroid Build Coastguard Worker } 239*89c4ff92SAndroid Build Coastguard Worker }; 240*89c4ff92SAndroid Build Coastguard Worker 241*89c4ff92SAndroid Build Coastguard Worker struct SimpleTransposeConvFixtureWithBias : TransposeConvFixtureWithBias 242*89c4ff92SAndroid Build Coastguard Worker { SimpleTransposeConvFixtureWithBiasSimpleTransposeConvFixtureWithBias243*89c4ff92SAndroid Build Coastguard Worker SimpleTransposeConvFixtureWithBias() 244*89c4ff92SAndroid Build Coastguard Worker : TransposeConvFixtureWithBias("[ 1, 2, 2, 1 ]", // inputShape 245*89c4ff92SAndroid Build Coastguard Worker "[ 1, 3, 3, 1 ]", // outputShape 246*89c4ff92SAndroid Build Coastguard Worker "[ 1, 2, 2, 1 ]", // filterShape 247*89c4ff92SAndroid Build Coastguard Worker "[ 0, 1, 2, 4 ]", // filterData 248*89c4ff92SAndroid Build Coastguard Worker "1", // strideX 249*89c4ff92SAndroid Build Coastguard Worker "1", // strideY 250*89c4ff92SAndroid Build Coastguard Worker "UINT8", // dataType 251*89c4ff92SAndroid Build Coastguard Worker "[ 1 ]", // bias shape 252*89c4ff92SAndroid Build Coastguard Worker "[ 10, 0, 0, 0 ]") // bias data 253*89c4ff92SAndroid Build Coastguard Worker {} 254*89c4ff92SAndroid Build Coastguard Worker }; 255*89c4ff92SAndroid Build Coastguard Worker 256*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(SimpleTransposeConvFixtureWithBias, "ParseSimpleTransposeConvWithBias") 257*89c4ff92SAndroid Build Coastguard Worker { 258*89c4ff92SAndroid Build Coastguard Worker RunTest<4, armnn::DataType::QAsymmU8>( 259*89c4ff92SAndroid Build Coastguard Worker 0, 260*89c4ff92SAndroid Build Coastguard Worker { 261*89c4ff92SAndroid Build Coastguard Worker 1, 2, 262*89c4ff92SAndroid Build Coastguard Worker 3, 4 263*89c4ff92SAndroid Build Coastguard Worker }, 264*89c4ff92SAndroid Build Coastguard Worker { 265*89c4ff92SAndroid Build Coastguard Worker 10, 11, 12, 266*89c4ff92SAndroid Build Coastguard Worker 12, 21, 22, 267*89c4ff92SAndroid Build Coastguard Worker 16, 30, 26 268*89c4ff92SAndroid Build Coastguard Worker }); 269*89c4ff92SAndroid Build Coastguard Worker } 270*89c4ff92SAndroid Build Coastguard Worker 271*89c4ff92SAndroid Build Coastguard Worker 272*89c4ff92SAndroid Build Coastguard Worker struct TransposeConvPerChannelFixture : public ParserFlatbuffersFixture 273*89c4ff92SAndroid Build Coastguard Worker { TransposeConvPerChannelFixtureTransposeConvPerChannelFixture274*89c4ff92SAndroid Build Coastguard Worker explicit TransposeConvPerChannelFixture() 275*89c4ff92SAndroid Build Coastguard Worker { 276*89c4ff92SAndroid Build Coastguard Worker m_JsonString = R"( 277*89c4ff92SAndroid Build Coastguard Worker { 278*89c4ff92SAndroid Build Coastguard Worker "version": 3, 279*89c4ff92SAndroid Build Coastguard Worker "operator_codes": [ 280*89c4ff92SAndroid Build Coastguard Worker { 281*89c4ff92SAndroid Build Coastguard Worker "builtin_code": "TRANSPOSE_CONV", 282*89c4ff92SAndroid Build Coastguard Worker "version": 2 283*89c4ff92SAndroid Build Coastguard Worker } 284*89c4ff92SAndroid Build Coastguard Worker ], 285*89c4ff92SAndroid Build Coastguard Worker "subgraphs": [ 286*89c4ff92SAndroid Build Coastguard Worker { 287*89c4ff92SAndroid Build Coastguard Worker "tensors": [ 288*89c4ff92SAndroid Build Coastguard Worker { 289*89c4ff92SAndroid Build Coastguard Worker "shape": [ 290*89c4ff92SAndroid Build Coastguard Worker 1, 291*89c4ff92SAndroid Build Coastguard Worker 4, 292*89c4ff92SAndroid Build Coastguard Worker 4, 293*89c4ff92SAndroid Build Coastguard Worker 2 294*89c4ff92SAndroid Build Coastguard Worker ], 295*89c4ff92SAndroid Build Coastguard Worker "type": "INT8", 296*89c4ff92SAndroid Build Coastguard Worker "buffer": 1, 297*89c4ff92SAndroid Build Coastguard Worker "name": "input", 298*89c4ff92SAndroid Build Coastguard Worker "quantization": { 299*89c4ff92SAndroid Build Coastguard Worker "min": [ 300*89c4ff92SAndroid Build Coastguard Worker -50.0 301*89c4ff92SAndroid Build Coastguard Worker ], 302*89c4ff92SAndroid Build Coastguard Worker "max": [ 303*89c4ff92SAndroid Build Coastguard Worker 49.0 304*89c4ff92SAndroid Build Coastguard Worker ], 305*89c4ff92SAndroid Build Coastguard Worker "scale": [ 306*89c4ff92SAndroid Build Coastguard Worker 0.388235 307*89c4ff92SAndroid Build Coastguard Worker ], 308*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 309*89c4ff92SAndroid Build Coastguard Worker 1 310*89c4ff92SAndroid Build Coastguard Worker ], 311*89c4ff92SAndroid Build Coastguard Worker "details_type": "NONE", 312*89c4ff92SAndroid Build Coastguard Worker "quantized_dimension": 0 313*89c4ff92SAndroid Build Coastguard Worker }, 314*89c4ff92SAndroid Build Coastguard Worker "is_variable": false 315*89c4ff92SAndroid Build Coastguard Worker }, 316*89c4ff92SAndroid Build Coastguard Worker { 317*89c4ff92SAndroid Build Coastguard Worker "shape": [ 318*89c4ff92SAndroid Build Coastguard Worker 4 319*89c4ff92SAndroid Build Coastguard Worker ], 320*89c4ff92SAndroid Build Coastguard Worker "type": "INT32", 321*89c4ff92SAndroid Build Coastguard Worker "buffer": 2, 322*89c4ff92SAndroid Build Coastguard Worker "name": "model/conv2d_transpose/stack", 323*89c4ff92SAndroid Build Coastguard Worker "quantization": { 324*89c4ff92SAndroid Build Coastguard Worker "details_type": "NONE", 325*89c4ff92SAndroid Build Coastguard Worker "quantized_dimension": 0 326*89c4ff92SAndroid Build Coastguard Worker }, 327*89c4ff92SAndroid Build Coastguard Worker "is_variable": false 328*89c4ff92SAndroid Build Coastguard Worker }, 329*89c4ff92SAndroid Build Coastguard Worker { 330*89c4ff92SAndroid Build Coastguard Worker "shape": [ 331*89c4ff92SAndroid Build Coastguard Worker 8, 332*89c4ff92SAndroid Build Coastguard Worker 2, 333*89c4ff92SAndroid Build Coastguard Worker 2, 334*89c4ff92SAndroid Build Coastguard Worker 2 335*89c4ff92SAndroid Build Coastguard Worker ], 336*89c4ff92SAndroid Build Coastguard Worker "type": "INT8", 337*89c4ff92SAndroid Build Coastguard Worker "buffer": 3, 338*89c4ff92SAndroid Build Coastguard Worker "name": "model/conv2d_transpose/conv2d_transpose", 339*89c4ff92SAndroid Build Coastguard Worker "quantization": { 340*89c4ff92SAndroid Build Coastguard Worker "min": [ 341*89c4ff92SAndroid Build Coastguard Worker -0.081948, 342*89c4ff92SAndroid Build Coastguard Worker -0.379918, 343*89c4ff92SAndroid Build Coastguard Worker -0.223632, 344*89c4ff92SAndroid Build Coastguard Worker -0.098629, 345*89c4ff92SAndroid Build Coastguard Worker -0.386369, 346*89c4ff92SAndroid Build Coastguard Worker -0.351057, 347*89c4ff92SAndroid Build Coastguard Worker -0.348749, 348*89c4ff92SAndroid Build Coastguard Worker -0.264848 349*89c4ff92SAndroid Build Coastguard Worker ], 350*89c4ff92SAndroid Build Coastguard Worker "max": [ 351*89c4ff92SAndroid Build Coastguard Worker 0.35091, 352*89c4ff92SAndroid Build Coastguard Worker 0.229681, 353*89c4ff92SAndroid Build Coastguard Worker 0.368384, 354*89c4ff92SAndroid Build Coastguard Worker 0.176761, 355*89c4ff92SAndroid Build Coastguard Worker 0.353717, 356*89c4ff92SAndroid Build Coastguard Worker 0.377565, 357*89c4ff92SAndroid Build Coastguard Worker 0.373713, 358*89c4ff92SAndroid Build Coastguard Worker 0.30141 359*89c4ff92SAndroid Build Coastguard Worker ], 360*89c4ff92SAndroid Build Coastguard Worker "scale": [ 361*89c4ff92SAndroid Build Coastguard Worker 0.002763, 362*89c4ff92SAndroid Build Coastguard Worker 0.002991, 363*89c4ff92SAndroid Build Coastguard Worker 0.002901, 364*89c4ff92SAndroid Build Coastguard Worker 0.001392, 365*89c4ff92SAndroid Build Coastguard Worker 0.003042, 366*89c4ff92SAndroid Build Coastguard Worker 0.002973, 367*89c4ff92SAndroid Build Coastguard Worker 0.002943, 368*89c4ff92SAndroid Build Coastguard Worker 0.002373 369*89c4ff92SAndroid Build Coastguard Worker ], 370*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 371*89c4ff92SAndroid Build Coastguard Worker 0, 372*89c4ff92SAndroid Build Coastguard Worker 0, 373*89c4ff92SAndroid Build Coastguard Worker 0, 374*89c4ff92SAndroid Build Coastguard Worker 0, 375*89c4ff92SAndroid Build Coastguard Worker 0, 376*89c4ff92SAndroid Build Coastguard Worker 0, 377*89c4ff92SAndroid Build Coastguard Worker 0, 378*89c4ff92SAndroid Build Coastguard Worker 0 379*89c4ff92SAndroid Build Coastguard Worker ], 380*89c4ff92SAndroid Build Coastguard Worker "details_type": "NONE", 381*89c4ff92SAndroid Build Coastguard Worker "quantized_dimension": 0 382*89c4ff92SAndroid Build Coastguard Worker }, 383*89c4ff92SAndroid Build Coastguard Worker "is_variable": false 384*89c4ff92SAndroid Build Coastguard Worker }, 385*89c4ff92SAndroid Build Coastguard Worker { 386*89c4ff92SAndroid Build Coastguard Worker "shape": [ 387*89c4ff92SAndroid Build Coastguard Worker 1, 388*89c4ff92SAndroid Build Coastguard Worker 4, 389*89c4ff92SAndroid Build Coastguard Worker 4, 390*89c4ff92SAndroid Build Coastguard Worker 8 391*89c4ff92SAndroid Build Coastguard Worker ], 392*89c4ff92SAndroid Build Coastguard Worker "type": "INT8", 393*89c4ff92SAndroid Build Coastguard Worker "buffer": 4, 394*89c4ff92SAndroid Build Coastguard Worker "name": "Identity", 395*89c4ff92SAndroid Build Coastguard Worker "quantization": { 396*89c4ff92SAndroid Build Coastguard Worker "min": [ 397*89c4ff92SAndroid Build Coastguard Worker -63.578175 398*89c4ff92SAndroid Build Coastguard Worker ], 399*89c4ff92SAndroid Build Coastguard Worker "max": [ 400*89c4ff92SAndroid Build Coastguard Worker 69.305023 401*89c4ff92SAndroid Build Coastguard Worker ], 402*89c4ff92SAndroid Build Coastguard Worker "scale": [ 403*89c4ff92SAndroid Build Coastguard Worker 0.521111 404*89c4ff92SAndroid Build Coastguard Worker ], 405*89c4ff92SAndroid Build Coastguard Worker "zero_point": [ 406*89c4ff92SAndroid Build Coastguard Worker -6 407*89c4ff92SAndroid Build Coastguard Worker ], 408*89c4ff92SAndroid Build Coastguard Worker "details_type": "NONE", 409*89c4ff92SAndroid Build Coastguard Worker "quantized_dimension": 0 410*89c4ff92SAndroid Build Coastguard Worker }, 411*89c4ff92SAndroid Build Coastguard Worker "is_variable": false 412*89c4ff92SAndroid Build Coastguard Worker } 413*89c4ff92SAndroid Build Coastguard Worker ], 414*89c4ff92SAndroid Build Coastguard Worker "inputs": [ 415*89c4ff92SAndroid Build Coastguard Worker 0 416*89c4ff92SAndroid Build Coastguard Worker ], 417*89c4ff92SAndroid Build Coastguard Worker "outputs": [ 418*89c4ff92SAndroid Build Coastguard Worker 3 419*89c4ff92SAndroid Build Coastguard Worker ], 420*89c4ff92SAndroid Build Coastguard Worker "operators": [ 421*89c4ff92SAndroid Build Coastguard Worker { 422*89c4ff92SAndroid Build Coastguard Worker "opcode_index": 0, 423*89c4ff92SAndroid Build Coastguard Worker "inputs": [ 424*89c4ff92SAndroid Build Coastguard Worker 1, 425*89c4ff92SAndroid Build Coastguard Worker 2, 426*89c4ff92SAndroid Build Coastguard Worker 0 427*89c4ff92SAndroid Build Coastguard Worker ], 428*89c4ff92SAndroid Build Coastguard Worker "outputs": [ 429*89c4ff92SAndroid Build Coastguard Worker 3 430*89c4ff92SAndroid Build Coastguard Worker ], 431*89c4ff92SAndroid Build Coastguard Worker "builtin_options_type": "TransposeConvOptions", 432*89c4ff92SAndroid Build Coastguard Worker "builtin_options": { 433*89c4ff92SAndroid Build Coastguard Worker "padding": "SAME", 434*89c4ff92SAndroid Build Coastguard Worker "stride_w": 1, 435*89c4ff92SAndroid Build Coastguard Worker "stride_h": 1 436*89c4ff92SAndroid Build Coastguard Worker }, 437*89c4ff92SAndroid Build Coastguard Worker "custom_options_format": "FLEXBUFFERS" 438*89c4ff92SAndroid Build Coastguard Worker } 439*89c4ff92SAndroid Build Coastguard Worker ], 440*89c4ff92SAndroid Build Coastguard Worker "name": "main" 441*89c4ff92SAndroid Build Coastguard Worker } 442*89c4ff92SAndroid Build Coastguard Worker ], 443*89c4ff92SAndroid Build Coastguard Worker "description": "MLIR Converted.", 444*89c4ff92SAndroid Build Coastguard Worker "buffers": [ 445*89c4ff92SAndroid Build Coastguard Worker { 446*89c4ff92SAndroid Build Coastguard Worker }, 447*89c4ff92SAndroid Build Coastguard Worker { 448*89c4ff92SAndroid Build Coastguard Worker }, 449*89c4ff92SAndroid Build Coastguard Worker { 450*89c4ff92SAndroid Build Coastguard Worker "data": [ 451*89c4ff92SAndroid Build Coastguard Worker 1, 452*89c4ff92SAndroid Build Coastguard Worker 0, 453*89c4ff92SAndroid Build Coastguard Worker 0, 454*89c4ff92SAndroid Build Coastguard Worker 0, 455*89c4ff92SAndroid Build Coastguard Worker 4, 456*89c4ff92SAndroid Build Coastguard Worker 0, 457*89c4ff92SAndroid Build Coastguard Worker 0, 458*89c4ff92SAndroid Build Coastguard Worker 0, 459*89c4ff92SAndroid Build Coastguard Worker 4, 460*89c4ff92SAndroid Build Coastguard Worker 0, 461*89c4ff92SAndroid Build Coastguard Worker 0, 462*89c4ff92SAndroid Build Coastguard Worker 0, 463*89c4ff92SAndroid Build Coastguard Worker 8, 464*89c4ff92SAndroid Build Coastguard Worker 0, 465*89c4ff92SAndroid Build Coastguard Worker 0, 466*89c4ff92SAndroid Build Coastguard Worker 0 467*89c4ff92SAndroid Build Coastguard Worker ] 468*89c4ff92SAndroid Build Coastguard Worker }, 469*89c4ff92SAndroid Build Coastguard Worker { 470*89c4ff92SAndroid Build Coastguard Worker "data": [ 471*89c4ff92SAndroid Build Coastguard Worker 13, 472*89c4ff92SAndroid Build Coastguard Worker 239, 473*89c4ff92SAndroid Build Coastguard Worker 7, 474*89c4ff92SAndroid Build Coastguard Worker 125, 475*89c4ff92SAndroid Build Coastguard Worker 35, 476*89c4ff92SAndroid Build Coastguard Worker 127, 477*89c4ff92SAndroid Build Coastguard Worker 55, 478*89c4ff92SAndroid Build Coastguard Worker 226, 479*89c4ff92SAndroid Build Coastguard Worker 77, 480*89c4ff92SAndroid Build Coastguard Worker 150, 481*89c4ff92SAndroid Build Coastguard Worker 159, 482*89c4ff92SAndroid Build Coastguard Worker 192, 483*89c4ff92SAndroid Build Coastguard Worker 180, 484*89c4ff92SAndroid Build Coastguard Worker 129, 485*89c4ff92SAndroid Build Coastguard Worker 51, 486*89c4ff92SAndroid Build Coastguard Worker 48, 487*89c4ff92SAndroid Build Coastguard Worker 108, 488*89c4ff92SAndroid Build Coastguard Worker 9, 489*89c4ff92SAndroid Build Coastguard Worker 21, 490*89c4ff92SAndroid Build Coastguard Worker 179, 491*89c4ff92SAndroid Build Coastguard Worker 12, 492*89c4ff92SAndroid Build Coastguard Worker 39, 493*89c4ff92SAndroid Build Coastguard Worker 127, 494*89c4ff92SAndroid Build Coastguard Worker 107, 495*89c4ff92SAndroid Build Coastguard Worker 44, 496*89c4ff92SAndroid Build Coastguard Worker 206, 497*89c4ff92SAndroid Build Coastguard Worker 127, 498*89c4ff92SAndroid Build Coastguard Worker 185, 499*89c4ff92SAndroid Build Coastguard Worker 108, 500*89c4ff92SAndroid Build Coastguard Worker 82, 501*89c4ff92SAndroid Build Coastguard Worker 86, 502*89c4ff92SAndroid Build Coastguard Worker 218, 503*89c4ff92SAndroid Build Coastguard Worker 38, 504*89c4ff92SAndroid Build Coastguard Worker 149, 505*89c4ff92SAndroid Build Coastguard Worker 16, 506*89c4ff92SAndroid Build Coastguard Worker 1, 507*89c4ff92SAndroid Build Coastguard Worker 129, 508*89c4ff92SAndroid Build Coastguard Worker 163, 509*89c4ff92SAndroid Build Coastguard Worker 116, 510*89c4ff92SAndroid Build Coastguard Worker 136, 511*89c4ff92SAndroid Build Coastguard Worker 138, 512*89c4ff92SAndroid Build Coastguard Worker 43, 513*89c4ff92SAndroid Build Coastguard Worker 65, 514*89c4ff92SAndroid Build Coastguard Worker 186, 515*89c4ff92SAndroid Build Coastguard Worker 154, 516*89c4ff92SAndroid Build Coastguard Worker 138, 517*89c4ff92SAndroid Build Coastguard Worker 64, 518*89c4ff92SAndroid Build Coastguard Worker 127, 519*89c4ff92SAndroid Build Coastguard Worker 120, 520*89c4ff92SAndroid Build Coastguard Worker 127, 521*89c4ff92SAndroid Build Coastguard Worker 207, 522*89c4ff92SAndroid Build Coastguard Worker 70, 523*89c4ff92SAndroid Build Coastguard Worker 43, 524*89c4ff92SAndroid Build Coastguard Worker 33, 525*89c4ff92SAndroid Build Coastguard Worker 141, 526*89c4ff92SAndroid Build Coastguard Worker 137, 527*89c4ff92SAndroid Build Coastguard Worker 93, 528*89c4ff92SAndroid Build Coastguard Worker 215, 529*89c4ff92SAndroid Build Coastguard Worker 65, 530*89c4ff92SAndroid Build Coastguard Worker 92, 531*89c4ff92SAndroid Build Coastguard Worker 122, 532*89c4ff92SAndroid Build Coastguard Worker 144, 533*89c4ff92SAndroid Build Coastguard Worker 120, 534*89c4ff92SAndroid Build Coastguard Worker 127 535*89c4ff92SAndroid Build Coastguard Worker ] 536*89c4ff92SAndroid Build Coastguard Worker }, 537*89c4ff92SAndroid Build Coastguard Worker { 538*89c4ff92SAndroid Build Coastguard Worker }, 539*89c4ff92SAndroid Build Coastguard Worker { 540*89c4ff92SAndroid Build Coastguard Worker "data": [ 541*89c4ff92SAndroid Build Coastguard Worker 49, 542*89c4ff92SAndroid Build Coastguard Worker 46, 543*89c4ff92SAndroid Build Coastguard Worker 57, 544*89c4ff92SAndroid Build Coastguard Worker 46, 545*89c4ff92SAndroid Build Coastguard Worker 48, 546*89c4ff92SAndroid Build Coastguard Worker 0, 547*89c4ff92SAndroid Build Coastguard Worker 0, 548*89c4ff92SAndroid Build Coastguard Worker 0, 549*89c4ff92SAndroid Build Coastguard Worker 0, 550*89c4ff92SAndroid Build Coastguard Worker 0, 551*89c4ff92SAndroid Build Coastguard Worker 0, 552*89c4ff92SAndroid Build Coastguard Worker 0, 553*89c4ff92SAndroid Build Coastguard Worker 0, 554*89c4ff92SAndroid Build Coastguard Worker 0, 555*89c4ff92SAndroid Build Coastguard Worker 0, 556*89c4ff92SAndroid Build Coastguard Worker 0 557*89c4ff92SAndroid Build Coastguard Worker ] 558*89c4ff92SAndroid Build Coastguard Worker } 559*89c4ff92SAndroid Build Coastguard Worker ], 560*89c4ff92SAndroid Build Coastguard Worker "metadata": [ 561*89c4ff92SAndroid Build Coastguard Worker { 562*89c4ff92SAndroid Build Coastguard Worker "name": "min_runtime_version", 563*89c4ff92SAndroid Build Coastguard Worker "buffer": 5 564*89c4ff92SAndroid Build Coastguard Worker } 565*89c4ff92SAndroid Build Coastguard Worker ] 566*89c4ff92SAndroid Build Coastguard Worker } 567*89c4ff92SAndroid Build Coastguard Worker )"; 568*89c4ff92SAndroid Build Coastguard Worker SetupSingleInputSingleOutput("input", "Identity"); 569*89c4ff92SAndroid Build Coastguard Worker } 570*89c4ff92SAndroid Build Coastguard Worker }; 571*89c4ff92SAndroid Build Coastguard Worker 572*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(TransposeConvPerChannelFixture, "ParseTransposeConvPerChannel") 573*89c4ff92SAndroid Build Coastguard Worker { 574*89c4ff92SAndroid Build Coastguard Worker RunTest<4, armnn::DataType::QAsymmS8>( 575*89c4ff92SAndroid Build Coastguard Worker 0, 576*89c4ff92SAndroid Build Coastguard Worker { 577*89c4ff92SAndroid Build Coastguard Worker -11, 40,-26, 11,-28, 8, 0, -8, 578*89c4ff92SAndroid Build Coastguard Worker -10, 34, 47, 0,-33,-14, 28, 35, 579*89c4ff92SAndroid Build Coastguard Worker 6,-28,-26, 8, 13, 33,-31,-41, 580*89c4ff92SAndroid Build Coastguard Worker 31,-20,-31,-16, 8,-18,-44, 0 581*89c4ff92SAndroid Build Coastguard Worker }, 582*89c4ff92SAndroid Build Coastguard Worker { 583*89c4ff92SAndroid Build Coastguard Worker -8,-17, -8, -9,-16, 1, 2,-11, 584*89c4ff92SAndroid Build Coastguard Worker 3,-16,-19,-12,-11, -6, -3, -6, 585*89c4ff92SAndroid Build Coastguard Worker -5, -8,-16,-12,-11, -3, -7,-13, 586*89c4ff92SAndroid Build Coastguard Worker -4, 1, -9,-10, -5,-12, -5, -8, 587*89c4ff92SAndroid Build Coastguard Worker 2,-25, -5, -6,-20, -7, 2,-21, 588*89c4ff92SAndroid Build Coastguard Worker 1, 4, 5,-13,-10,-12, 3, 4, 589*89c4ff92SAndroid Build Coastguard Worker -10,-17,-17, -6, -7, 12,-22,-17, 590*89c4ff92SAndroid Build Coastguard Worker -17, 0, -5,-14,-21,-12, 17,-13, 591*89c4ff92SAndroid Build Coastguard Worker 3, -6, -3, -3, -2,-16,-11,-12, 592*89c4ff92SAndroid Build Coastguard Worker -15,-14, -1, -2,-35, 5,-18, 0, 593*89c4ff92SAndroid Build Coastguard Worker -6, 8, 5,-12, 12, 7, -6, -3, 594*89c4ff92SAndroid Build Coastguard Worker 11,-28,-28, -3,-18,-29, -5,-13, 595*89c4ff92SAndroid Build Coastguard Worker -12, 11, -2, -5, 6, -9, -6, 7, 596*89c4ff92SAndroid Build Coastguard Worker -9,-11,-14, -2, 12, 5,-21,-23, 597*89c4ff92SAndroid Build Coastguard Worker -4, -4, -6, -6,-21,-25, 0,-18, 598*89c4ff92SAndroid Build Coastguard Worker -26, 10, -7,-13, 3, 39,-39, -4 599*89c4ff92SAndroid Build Coastguard Worker }); 600*89c4ff92SAndroid Build Coastguard Worker } 601*89c4ff92SAndroid Build Coastguard Worker 602*89c4ff92SAndroid Build Coastguard Worker } 603