1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2021 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 "ParserFlatbuffersSerializeFixture.hpp" 7*89c4ff92SAndroid Build Coastguard Worker 8*89c4ff92SAndroid Build Coastguard Worker #include <armnnDeserializer/IDeserializer.hpp> 9*89c4ff92SAndroid Build Coastguard Worker 10*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h> 11*89c4ff92SAndroid Build Coastguard Worker 12*89c4ff92SAndroid Build Coastguard Worker #include <string> 13*89c4ff92SAndroid Build Coastguard Worker 14*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Deserializer_DepthwiseConv2d") 15*89c4ff92SAndroid Build Coastguard Worker { 16*89c4ff92SAndroid Build Coastguard Worker struct DepthwiseConv2dFlatbufferVersion1FixtureOld : public ParserFlatbuffersSerializeFixture 17*89c4ff92SAndroid Build Coastguard Worker { DepthwiseConv2dFlatbufferVersion1FixtureOldDepthwiseConv2dFlatbufferVersion1FixtureOld18*89c4ff92SAndroid Build Coastguard Worker explicit DepthwiseConv2dFlatbufferVersion1FixtureOld() 19*89c4ff92SAndroid Build Coastguard Worker { 20*89c4ff92SAndroid Build Coastguard Worker m_JsonString = R"( 21*89c4ff92SAndroid Build Coastguard Worker { 22*89c4ff92SAndroid Build Coastguard Worker "layers": [ 23*89c4ff92SAndroid Build Coastguard Worker { 24*89c4ff92SAndroid Build Coastguard Worker "layer_type": "InputLayer", 25*89c4ff92SAndroid Build Coastguard Worker "layer": { 26*89c4ff92SAndroid Build Coastguard Worker "base": { 27*89c4ff92SAndroid Build Coastguard Worker "base": { 28*89c4ff92SAndroid Build Coastguard Worker "index": 0, 29*89c4ff92SAndroid Build Coastguard Worker "layerName": "Input", 30*89c4ff92SAndroid Build Coastguard Worker "layerType": "Input", 31*89c4ff92SAndroid Build Coastguard Worker "inputSlots": [ 32*89c4ff92SAndroid Build Coastguard Worker 33*89c4ff92SAndroid Build Coastguard Worker ], 34*89c4ff92SAndroid Build Coastguard Worker "outputSlots": [ 35*89c4ff92SAndroid Build Coastguard Worker { 36*89c4ff92SAndroid Build Coastguard Worker "index": 0, 37*89c4ff92SAndroid Build Coastguard Worker "tensorInfo": { 38*89c4ff92SAndroid Build Coastguard Worker "dimensions": [ 39*89c4ff92SAndroid Build Coastguard Worker 1, 40*89c4ff92SAndroid Build Coastguard Worker 3, 41*89c4ff92SAndroid Build Coastguard Worker 3, 42*89c4ff92SAndroid Build Coastguard Worker 3 43*89c4ff92SAndroid Build Coastguard Worker ], 44*89c4ff92SAndroid Build Coastguard Worker "dataType": "QAsymmS8", 45*89c4ff92SAndroid Build Coastguard Worker "quantizationScale": 1.0, 46*89c4ff92SAndroid Build Coastguard Worker "quantizationOffset": 0, 47*89c4ff92SAndroid Build Coastguard Worker "quantizationDim": 0, 48*89c4ff92SAndroid Build Coastguard Worker "dimensionality": 1, 49*89c4ff92SAndroid Build Coastguard Worker "dimensionSpecificity": [ 50*89c4ff92SAndroid Build Coastguard Worker true, 51*89c4ff92SAndroid Build Coastguard Worker true, 52*89c4ff92SAndroid Build Coastguard Worker true, 53*89c4ff92SAndroid Build Coastguard Worker true 54*89c4ff92SAndroid Build Coastguard Worker ] 55*89c4ff92SAndroid Build Coastguard Worker } 56*89c4ff92SAndroid Build Coastguard Worker } 57*89c4ff92SAndroid Build Coastguard Worker ] 58*89c4ff92SAndroid Build Coastguard Worker }, 59*89c4ff92SAndroid Build Coastguard Worker "layerBindingId": 0 60*89c4ff92SAndroid Build Coastguard Worker } 61*89c4ff92SAndroid Build Coastguard Worker } 62*89c4ff92SAndroid Build Coastguard Worker }, 63*89c4ff92SAndroid Build Coastguard Worker { 64*89c4ff92SAndroid Build Coastguard Worker "layer_type": "DepthwiseConvolution2dLayer", 65*89c4ff92SAndroid Build Coastguard Worker "layer": { 66*89c4ff92SAndroid Build Coastguard Worker "base": { 67*89c4ff92SAndroid Build Coastguard Worker "index": 1, 68*89c4ff92SAndroid Build Coastguard Worker "layerName": "depwiseConvolution2dWithPerAxis", 69*89c4ff92SAndroid Build Coastguard Worker "layerType": "DepthwiseConvolution2d", 70*89c4ff92SAndroid Build Coastguard Worker "inputSlots": [ 71*89c4ff92SAndroid Build Coastguard Worker { 72*89c4ff92SAndroid Build Coastguard Worker "index": 0, 73*89c4ff92SAndroid Build Coastguard Worker "connection": { 74*89c4ff92SAndroid Build Coastguard Worker "sourceLayerIndex": 0, 75*89c4ff92SAndroid Build Coastguard Worker "outputSlotIndex": 0 76*89c4ff92SAndroid Build Coastguard Worker } 77*89c4ff92SAndroid Build Coastguard Worker } 78*89c4ff92SAndroid Build Coastguard Worker ], 79*89c4ff92SAndroid Build Coastguard Worker "outputSlots": [ 80*89c4ff92SAndroid Build Coastguard Worker { 81*89c4ff92SAndroid Build Coastguard Worker "index": 0, 82*89c4ff92SAndroid Build Coastguard Worker "tensorInfo": { 83*89c4ff92SAndroid Build Coastguard Worker "dimensions": [ 84*89c4ff92SAndroid Build Coastguard Worker 1, 85*89c4ff92SAndroid Build Coastguard Worker 3, 86*89c4ff92SAndroid Build Coastguard Worker 3, 87*89c4ff92SAndroid Build Coastguard Worker 3 88*89c4ff92SAndroid Build Coastguard Worker ], 89*89c4ff92SAndroid Build Coastguard Worker "dataType": "QAsymmS8", 90*89c4ff92SAndroid Build Coastguard Worker "quantizationScale": 1.0, 91*89c4ff92SAndroid Build Coastguard Worker "quantizationOffset": 0, 92*89c4ff92SAndroid Build Coastguard Worker "quantizationDim": 0, 93*89c4ff92SAndroid Build Coastguard Worker "dimensionality": 1, 94*89c4ff92SAndroid Build Coastguard Worker "dimensionSpecificity": [ 95*89c4ff92SAndroid Build Coastguard Worker true, 96*89c4ff92SAndroid Build Coastguard Worker true, 97*89c4ff92SAndroid Build Coastguard Worker true, 98*89c4ff92SAndroid Build Coastguard Worker true 99*89c4ff92SAndroid Build Coastguard Worker ] 100*89c4ff92SAndroid Build Coastguard Worker } 101*89c4ff92SAndroid Build Coastguard Worker } 102*89c4ff92SAndroid Build Coastguard Worker ] 103*89c4ff92SAndroid Build Coastguard Worker }, 104*89c4ff92SAndroid Build Coastguard Worker "descriptor": { 105*89c4ff92SAndroid Build Coastguard Worker "padLeft": 1, 106*89c4ff92SAndroid Build Coastguard Worker "padRight": 1, 107*89c4ff92SAndroid Build Coastguard Worker "padTop": 1, 108*89c4ff92SAndroid Build Coastguard Worker "padBottom": 1, 109*89c4ff92SAndroid Build Coastguard Worker "strideX": 1, 110*89c4ff92SAndroid Build Coastguard Worker "strideY": 1, 111*89c4ff92SAndroid Build Coastguard Worker "dilationX": 1, 112*89c4ff92SAndroid Build Coastguard Worker "dilationY": 1, 113*89c4ff92SAndroid Build Coastguard Worker "biasEnabled": false, 114*89c4ff92SAndroid Build Coastguard Worker "dataLayout": "NHWC" 115*89c4ff92SAndroid Build Coastguard Worker }, 116*89c4ff92SAndroid Build Coastguard Worker "weights": { 117*89c4ff92SAndroid Build Coastguard Worker "info": { 118*89c4ff92SAndroid Build Coastguard Worker "dimensions": [ 119*89c4ff92SAndroid Build Coastguard Worker 1, 120*89c4ff92SAndroid Build Coastguard Worker 3, 121*89c4ff92SAndroid Build Coastguard Worker 3, 122*89c4ff92SAndroid Build Coastguard Worker 3 123*89c4ff92SAndroid Build Coastguard Worker ], 124*89c4ff92SAndroid Build Coastguard Worker "dataType": "QSymmS8", 125*89c4ff92SAndroid Build Coastguard Worker "quantizationScale": 0.25, 126*89c4ff92SAndroid Build Coastguard Worker "quantizationOffset": 0, 127*89c4ff92SAndroid Build Coastguard Worker "quantizationScales": [ 128*89c4ff92SAndroid Build Coastguard Worker 0.25, 129*89c4ff92SAndroid Build Coastguard Worker 0.2, 130*89c4ff92SAndroid Build Coastguard Worker 0.1 131*89c4ff92SAndroid Build Coastguard Worker ], 132*89c4ff92SAndroid Build Coastguard Worker "quantizationDim": 0, 133*89c4ff92SAndroid Build Coastguard Worker "dimensionality": 1, 134*89c4ff92SAndroid Build Coastguard Worker "dimensionSpecificity": [ 135*89c4ff92SAndroid Build Coastguard Worker true, 136*89c4ff92SAndroid Build Coastguard Worker true, 137*89c4ff92SAndroid Build Coastguard Worker true, 138*89c4ff92SAndroid Build Coastguard Worker true 139*89c4ff92SAndroid Build Coastguard Worker ] 140*89c4ff92SAndroid Build Coastguard Worker }, 141*89c4ff92SAndroid Build Coastguard Worker "data_type": "ByteData", 142*89c4ff92SAndroid Build Coastguard Worker "data": { 143*89c4ff92SAndroid Build Coastguard Worker "data": [ 144*89c4ff92SAndroid Build Coastguard Worker 4, 145*89c4ff92SAndroid Build Coastguard Worker 20, 146*89c4ff92SAndroid Build Coastguard Worker 0, 147*89c4ff92SAndroid Build Coastguard Worker 8, 148*89c4ff92SAndroid Build Coastguard Worker 20, 149*89c4ff92SAndroid Build Coastguard Worker 30, 150*89c4ff92SAndroid Build Coastguard Worker 4, 151*89c4ff92SAndroid Build Coastguard Worker 0, 152*89c4ff92SAndroid Build Coastguard Worker 10, 153*89c4ff92SAndroid Build Coastguard Worker 12, 154*89c4ff92SAndroid Build Coastguard Worker 0, 155*89c4ff92SAndroid Build Coastguard Worker 40, 156*89c4ff92SAndroid Build Coastguard Worker 0, 157*89c4ff92SAndroid Build Coastguard Worker 5, 158*89c4ff92SAndroid Build Coastguard Worker 30, 159*89c4ff92SAndroid Build Coastguard Worker 16, 160*89c4ff92SAndroid Build Coastguard Worker 10, 161*89c4ff92SAndroid Build Coastguard Worker 40, 162*89c4ff92SAndroid Build Coastguard Worker 12, 163*89c4ff92SAndroid Build Coastguard Worker 0, 164*89c4ff92SAndroid Build Coastguard Worker 30, 165*89c4ff92SAndroid Build Coastguard Worker 16, 166*89c4ff92SAndroid Build Coastguard Worker 20, 167*89c4ff92SAndroid Build Coastguard Worker 0, 168*89c4ff92SAndroid Build Coastguard Worker 12, 169*89c4ff92SAndroid Build Coastguard Worker 20, 170*89c4ff92SAndroid Build Coastguard Worker 20 171*89c4ff92SAndroid Build Coastguard Worker ] 172*89c4ff92SAndroid Build Coastguard Worker } 173*89c4ff92SAndroid Build Coastguard Worker } 174*89c4ff92SAndroid Build Coastguard Worker } 175*89c4ff92SAndroid Build Coastguard Worker }, 176*89c4ff92SAndroid Build Coastguard Worker { 177*89c4ff92SAndroid Build Coastguard Worker "layer_type": "OutputLayer", 178*89c4ff92SAndroid Build Coastguard Worker "layer": { 179*89c4ff92SAndroid Build Coastguard Worker "base": { 180*89c4ff92SAndroid Build Coastguard Worker "base": { 181*89c4ff92SAndroid Build Coastguard Worker "index": 2, 182*89c4ff92SAndroid Build Coastguard Worker "layerName": "Output", 183*89c4ff92SAndroid Build Coastguard Worker "layerType": "Output", 184*89c4ff92SAndroid Build Coastguard Worker "inputSlots": [ 185*89c4ff92SAndroid Build Coastguard Worker { 186*89c4ff92SAndroid Build Coastguard Worker "index": 0, 187*89c4ff92SAndroid Build Coastguard Worker "connection": { 188*89c4ff92SAndroid Build Coastguard Worker "sourceLayerIndex": 1, 189*89c4ff92SAndroid Build Coastguard Worker "outputSlotIndex": 0 190*89c4ff92SAndroid Build Coastguard Worker } 191*89c4ff92SAndroid Build Coastguard Worker } 192*89c4ff92SAndroid Build Coastguard Worker ], 193*89c4ff92SAndroid Build Coastguard Worker "outputSlots": [ 194*89c4ff92SAndroid Build Coastguard Worker 195*89c4ff92SAndroid Build Coastguard Worker ] 196*89c4ff92SAndroid Build Coastguard Worker }, 197*89c4ff92SAndroid Build Coastguard Worker "layerBindingId": 0 198*89c4ff92SAndroid Build Coastguard Worker } 199*89c4ff92SAndroid Build Coastguard Worker } 200*89c4ff92SAndroid Build Coastguard Worker } 201*89c4ff92SAndroid Build Coastguard Worker ], 202*89c4ff92SAndroid Build Coastguard Worker "inputIds": [ 203*89c4ff92SAndroid Build Coastguard Worker 0 204*89c4ff92SAndroid Build Coastguard Worker ], 205*89c4ff92SAndroid Build Coastguard Worker "outputIds": [ 206*89c4ff92SAndroid Build Coastguard Worker 0 207*89c4ff92SAndroid Build Coastguard Worker ], 208*89c4ff92SAndroid Build Coastguard Worker "featureVersions": { 209*89c4ff92SAndroid Build Coastguard Worker "bindingIdsScheme": 1 210*89c4ff92SAndroid Build Coastguard Worker } 211*89c4ff92SAndroid Build Coastguard Worker } 212*89c4ff92SAndroid Build Coastguard Worker )"; 213*89c4ff92SAndroid Build Coastguard Worker SetupSingleInputSingleOutput("Input", "Output"); 214*89c4ff92SAndroid Build Coastguard Worker } 215*89c4ff92SAndroid Build Coastguard Worker }; 216*89c4ff92SAndroid Build Coastguard Worker 217*89c4ff92SAndroid Build Coastguard Worker struct DepthwiseConv2dFlatbufferVersion1Fixture : public ParserFlatbuffersSerializeFixture 218*89c4ff92SAndroid Build Coastguard Worker { DepthwiseConv2dFlatbufferVersion1FixtureDepthwiseConv2dFlatbufferVersion1Fixture219*89c4ff92SAndroid Build Coastguard Worker explicit DepthwiseConv2dFlatbufferVersion1Fixture() 220*89c4ff92SAndroid Build Coastguard Worker { 221*89c4ff92SAndroid Build Coastguard Worker m_JsonString = R"( 222*89c4ff92SAndroid Build Coastguard Worker { 223*89c4ff92SAndroid Build Coastguard Worker "layers": [ 224*89c4ff92SAndroid Build Coastguard Worker { 225*89c4ff92SAndroid Build Coastguard Worker "layer_type": "InputLayer", 226*89c4ff92SAndroid Build Coastguard Worker "layer": { 227*89c4ff92SAndroid Build Coastguard Worker "base": { 228*89c4ff92SAndroid Build Coastguard Worker "base": { 229*89c4ff92SAndroid Build Coastguard Worker "index": 0, 230*89c4ff92SAndroid Build Coastguard Worker "layerName": "InputLayer", 231*89c4ff92SAndroid Build Coastguard Worker "layerType": "Input", 232*89c4ff92SAndroid Build Coastguard Worker "inputSlots": [ 233*89c4ff92SAndroid Build Coastguard Worker ], 234*89c4ff92SAndroid Build Coastguard Worker "outputSlots": [ 235*89c4ff92SAndroid Build Coastguard Worker { 236*89c4ff92SAndroid Build Coastguard Worker "index": 0, 237*89c4ff92SAndroid Build Coastguard Worker "tensorInfo": { 238*89c4ff92SAndroid Build Coastguard Worker "dimensions": [ 239*89c4ff92SAndroid Build Coastguard Worker 1, 240*89c4ff92SAndroid Build Coastguard Worker 3, 241*89c4ff92SAndroid Build Coastguard Worker 3, 242*89c4ff92SAndroid Build Coastguard Worker 3 243*89c4ff92SAndroid Build Coastguard Worker ], 244*89c4ff92SAndroid Build Coastguard Worker "dataType": "QAsymmS8", 245*89c4ff92SAndroid Build Coastguard Worker "quantizationScale": 1.0, 246*89c4ff92SAndroid Build Coastguard Worker "quantizationOffset": 0, 247*89c4ff92SAndroid Build Coastguard Worker "quantizationDim": 0, 248*89c4ff92SAndroid Build Coastguard Worker "dimensionality": 1, 249*89c4ff92SAndroid Build Coastguard Worker "dimensionSpecificity": [ 250*89c4ff92SAndroid Build Coastguard Worker true, 251*89c4ff92SAndroid Build Coastguard Worker true, 252*89c4ff92SAndroid Build Coastguard Worker true, 253*89c4ff92SAndroid Build Coastguard Worker true 254*89c4ff92SAndroid Build Coastguard Worker ] 255*89c4ff92SAndroid Build Coastguard Worker } 256*89c4ff92SAndroid Build Coastguard Worker } 257*89c4ff92SAndroid Build Coastguard Worker ] 258*89c4ff92SAndroid Build Coastguard Worker }, 259*89c4ff92SAndroid Build Coastguard Worker "layerBindingId": 0 260*89c4ff92SAndroid Build Coastguard Worker } 261*89c4ff92SAndroid Build Coastguard Worker } 262*89c4ff92SAndroid Build Coastguard Worker }, 263*89c4ff92SAndroid Build Coastguard Worker { 264*89c4ff92SAndroid Build Coastguard Worker "layer_type": "DepthwiseConvolution2dLayer", 265*89c4ff92SAndroid Build Coastguard Worker "layer": { 266*89c4ff92SAndroid Build Coastguard Worker "base": { 267*89c4ff92SAndroid Build Coastguard Worker "index": 1, 268*89c4ff92SAndroid Build Coastguard Worker "layerName": "depthwiseConvolution2dWithPerAxis", 269*89c4ff92SAndroid Build Coastguard Worker "layerType": "DepthwiseConvolution2d", 270*89c4ff92SAndroid Build Coastguard Worker "inputSlots": [ 271*89c4ff92SAndroid Build Coastguard Worker { 272*89c4ff92SAndroid Build Coastguard Worker "index": 0, 273*89c4ff92SAndroid Build Coastguard Worker "connection": { 274*89c4ff92SAndroid Build Coastguard Worker "sourceLayerIndex": 0, 275*89c4ff92SAndroid Build Coastguard Worker "outputSlotIndex": 0 276*89c4ff92SAndroid Build Coastguard Worker } 277*89c4ff92SAndroid Build Coastguard Worker }, 278*89c4ff92SAndroid Build Coastguard Worker { 279*89c4ff92SAndroid Build Coastguard Worker "index": 1, 280*89c4ff92SAndroid Build Coastguard Worker "connection": { 281*89c4ff92SAndroid Build Coastguard Worker "sourceLayerIndex": 2, 282*89c4ff92SAndroid Build Coastguard Worker "outputSlotIndex": 0 283*89c4ff92SAndroid Build Coastguard Worker } 284*89c4ff92SAndroid Build Coastguard Worker } 285*89c4ff92SAndroid Build Coastguard Worker ], 286*89c4ff92SAndroid Build Coastguard Worker "outputSlots": [ 287*89c4ff92SAndroid Build Coastguard Worker { 288*89c4ff92SAndroid Build Coastguard Worker "index": 0, 289*89c4ff92SAndroid Build Coastguard Worker "tensorInfo": { 290*89c4ff92SAndroid Build Coastguard Worker "dimensions": [ 291*89c4ff92SAndroid Build Coastguard Worker 1, 292*89c4ff92SAndroid Build Coastguard Worker 3, 293*89c4ff92SAndroid Build Coastguard Worker 3, 294*89c4ff92SAndroid Build Coastguard Worker 3 295*89c4ff92SAndroid Build Coastguard Worker ], 296*89c4ff92SAndroid Build Coastguard Worker "dataType": "QAsymmS8", 297*89c4ff92SAndroid Build Coastguard Worker "quantizationScale": 1.0, 298*89c4ff92SAndroid Build Coastguard Worker "quantizationOffset": 0, 299*89c4ff92SAndroid Build Coastguard Worker "quantizationDim": 0, 300*89c4ff92SAndroid Build Coastguard Worker "dimensionality": 1, 301*89c4ff92SAndroid Build Coastguard Worker "dimensionSpecificity": [ 302*89c4ff92SAndroid Build Coastguard Worker true, 303*89c4ff92SAndroid Build Coastguard Worker true, 304*89c4ff92SAndroid Build Coastguard Worker true, 305*89c4ff92SAndroid Build Coastguard Worker true 306*89c4ff92SAndroid Build Coastguard Worker ] 307*89c4ff92SAndroid Build Coastguard Worker } 308*89c4ff92SAndroid Build Coastguard Worker } 309*89c4ff92SAndroid Build Coastguard Worker ] 310*89c4ff92SAndroid Build Coastguard Worker }, 311*89c4ff92SAndroid Build Coastguard Worker "descriptor": { 312*89c4ff92SAndroid Build Coastguard Worker "padLeft": 1, 313*89c4ff92SAndroid Build Coastguard Worker "padRight": 1, 314*89c4ff92SAndroid Build Coastguard Worker "padTop": 1, 315*89c4ff92SAndroid Build Coastguard Worker "padBottom": 1, 316*89c4ff92SAndroid Build Coastguard Worker "strideX": 1, 317*89c4ff92SAndroid Build Coastguard Worker "strideY": 1, 318*89c4ff92SAndroid Build Coastguard Worker "dilationX": 1, 319*89c4ff92SAndroid Build Coastguard Worker "dilationY": 1, 320*89c4ff92SAndroid Build Coastguard Worker "biasEnabled": false, 321*89c4ff92SAndroid Build Coastguard Worker "dataLayout": "NHWC" 322*89c4ff92SAndroid Build Coastguard Worker } 323*89c4ff92SAndroid Build Coastguard Worker } 324*89c4ff92SAndroid Build Coastguard Worker }, 325*89c4ff92SAndroid Build Coastguard Worker { 326*89c4ff92SAndroid Build Coastguard Worker "layer_type": "ConstantLayer", 327*89c4ff92SAndroid Build Coastguard Worker "layer": { 328*89c4ff92SAndroid Build Coastguard Worker "base": { 329*89c4ff92SAndroid Build Coastguard Worker "index": 2, 330*89c4ff92SAndroid Build Coastguard Worker "layerName": "Weights", 331*89c4ff92SAndroid Build Coastguard Worker "layerType": "Constant", 332*89c4ff92SAndroid Build Coastguard Worker "inputSlots": [ 333*89c4ff92SAndroid Build Coastguard Worker ], 334*89c4ff92SAndroid Build Coastguard Worker "outputSlots": [ 335*89c4ff92SAndroid Build Coastguard Worker { 336*89c4ff92SAndroid Build Coastguard Worker "index": 0, 337*89c4ff92SAndroid Build Coastguard Worker "tensorInfo": { 338*89c4ff92SAndroid Build Coastguard Worker "dimensions": [ 339*89c4ff92SAndroid Build Coastguard Worker 1, 340*89c4ff92SAndroid Build Coastguard Worker 3, 341*89c4ff92SAndroid Build Coastguard Worker 3, 342*89c4ff92SAndroid Build Coastguard Worker 3 343*89c4ff92SAndroid Build Coastguard Worker ], 344*89c4ff92SAndroid Build Coastguard Worker "dataType": "QSymmS8", 345*89c4ff92SAndroid Build Coastguard Worker "quantizationScale": 0.25, 346*89c4ff92SAndroid Build Coastguard Worker "quantizationOffset": 0, 347*89c4ff92SAndroid Build Coastguard Worker "quantizationDim": 0, 348*89c4ff92SAndroid Build Coastguard Worker "dimensionality": 1, 349*89c4ff92SAndroid Build Coastguard Worker "dimensionSpecificity": [ 350*89c4ff92SAndroid Build Coastguard Worker true, 351*89c4ff92SAndroid Build Coastguard Worker true, 352*89c4ff92SAndroid Build Coastguard Worker true, 353*89c4ff92SAndroid Build Coastguard Worker true 354*89c4ff92SAndroid Build Coastguard Worker ], 355*89c4ff92SAndroid Build Coastguard Worker quantizationScales: [ 356*89c4ff92SAndroid Build Coastguard Worker 0.25, 357*89c4ff92SAndroid Build Coastguard Worker 0.2, 358*89c4ff92SAndroid Build Coastguard Worker 0.1 359*89c4ff92SAndroid Build Coastguard Worker ], 360*89c4ff92SAndroid Build Coastguard Worker "isConstant": true, 361*89c4ff92SAndroid Build Coastguard Worker } 362*89c4ff92SAndroid Build Coastguard Worker } 363*89c4ff92SAndroid Build Coastguard Worker ] 364*89c4ff92SAndroid Build Coastguard Worker }, 365*89c4ff92SAndroid Build Coastguard Worker "input": { 366*89c4ff92SAndroid Build Coastguard Worker "info": { 367*89c4ff92SAndroid Build Coastguard Worker "dimensions": [ 368*89c4ff92SAndroid Build Coastguard Worker 1, 369*89c4ff92SAndroid Build Coastguard Worker 3, 370*89c4ff92SAndroid Build Coastguard Worker 3, 371*89c4ff92SAndroid Build Coastguard Worker 3 372*89c4ff92SAndroid Build Coastguard Worker ], 373*89c4ff92SAndroid Build Coastguard Worker "dataType": "QSymmS8", 374*89c4ff92SAndroid Build Coastguard Worker "quantizationScale": 0.25, 375*89c4ff92SAndroid Build Coastguard Worker "quantizationOffset": 0, 376*89c4ff92SAndroid Build Coastguard Worker "quantizationDim": 0, 377*89c4ff92SAndroid Build Coastguard Worker "dimensionality": 1, 378*89c4ff92SAndroid Build Coastguard Worker "dimensionSpecificity": [ 379*89c4ff92SAndroid Build Coastguard Worker true, 380*89c4ff92SAndroid Build Coastguard Worker true, 381*89c4ff92SAndroid Build Coastguard Worker true, 382*89c4ff92SAndroid Build Coastguard Worker true 383*89c4ff92SAndroid Build Coastguard Worker ], 384*89c4ff92SAndroid Build Coastguard Worker quantizationScales: [ 385*89c4ff92SAndroid Build Coastguard Worker 0.25, 386*89c4ff92SAndroid Build Coastguard Worker 0.2, 387*89c4ff92SAndroid Build Coastguard Worker 0.1 388*89c4ff92SAndroid Build Coastguard Worker ] 389*89c4ff92SAndroid Build Coastguard Worker }, 390*89c4ff92SAndroid Build Coastguard Worker "data_type": "ByteData", 391*89c4ff92SAndroid Build Coastguard Worker "data": { 392*89c4ff92SAndroid Build Coastguard Worker "data": [ 393*89c4ff92SAndroid Build Coastguard Worker 4, 394*89c4ff92SAndroid Build Coastguard Worker 20, 395*89c4ff92SAndroid Build Coastguard Worker 0, 396*89c4ff92SAndroid Build Coastguard Worker 8, 397*89c4ff92SAndroid Build Coastguard Worker 20, 398*89c4ff92SAndroid Build Coastguard Worker 30, 399*89c4ff92SAndroid Build Coastguard Worker 4, 400*89c4ff92SAndroid Build Coastguard Worker 0, 401*89c4ff92SAndroid Build Coastguard Worker 10, 402*89c4ff92SAndroid Build Coastguard Worker 12, 403*89c4ff92SAndroid Build Coastguard Worker 0, 404*89c4ff92SAndroid Build Coastguard Worker 40, 405*89c4ff92SAndroid Build Coastguard Worker 0, 406*89c4ff92SAndroid Build Coastguard Worker 5, 407*89c4ff92SAndroid Build Coastguard Worker 30, 408*89c4ff92SAndroid Build Coastguard Worker 16, 409*89c4ff92SAndroid Build Coastguard Worker 10, 410*89c4ff92SAndroid Build Coastguard Worker 40, 411*89c4ff92SAndroid Build Coastguard Worker 12, 412*89c4ff92SAndroid Build Coastguard Worker 0, 413*89c4ff92SAndroid Build Coastguard Worker 30, 414*89c4ff92SAndroid Build Coastguard Worker 16, 415*89c4ff92SAndroid Build Coastguard Worker 20, 416*89c4ff92SAndroid Build Coastguard Worker 0, 417*89c4ff92SAndroid Build Coastguard Worker 12, 418*89c4ff92SAndroid Build Coastguard Worker 20, 419*89c4ff92SAndroid Build Coastguard Worker 20 420*89c4ff92SAndroid Build Coastguard Worker ] 421*89c4ff92SAndroid Build Coastguard Worker } 422*89c4ff92SAndroid Build Coastguard Worker } 423*89c4ff92SAndroid Build Coastguard Worker } 424*89c4ff92SAndroid Build Coastguard Worker }, 425*89c4ff92SAndroid Build Coastguard Worker { 426*89c4ff92SAndroid Build Coastguard Worker "layer_type": "OutputLayer", 427*89c4ff92SAndroid Build Coastguard Worker "layer": { 428*89c4ff92SAndroid Build Coastguard Worker "base": { 429*89c4ff92SAndroid Build Coastguard Worker "base": { 430*89c4ff92SAndroid Build Coastguard Worker "index": 3, 431*89c4ff92SAndroid Build Coastguard Worker "layerName": "OutputLayer", 432*89c4ff92SAndroid Build Coastguard Worker "layerType": "Output", 433*89c4ff92SAndroid Build Coastguard Worker "inputSlots": [ 434*89c4ff92SAndroid Build Coastguard Worker { 435*89c4ff92SAndroid Build Coastguard Worker "index": 0, 436*89c4ff92SAndroid Build Coastguard Worker "connection": { 437*89c4ff92SAndroid Build Coastguard Worker "sourceLayerIndex": 1, 438*89c4ff92SAndroid Build Coastguard Worker "outputSlotIndex": 0 439*89c4ff92SAndroid Build Coastguard Worker } 440*89c4ff92SAndroid Build Coastguard Worker } 441*89c4ff92SAndroid Build Coastguard Worker ], 442*89c4ff92SAndroid Build Coastguard Worker "outputSlots": [ 443*89c4ff92SAndroid Build Coastguard Worker ] 444*89c4ff92SAndroid Build Coastguard Worker }, 445*89c4ff92SAndroid Build Coastguard Worker "layerBindingId": 0 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 "inputIds": [ 451*89c4ff92SAndroid Build Coastguard Worker 0 452*89c4ff92SAndroid Build Coastguard Worker ], 453*89c4ff92SAndroid Build Coastguard Worker "outputIds": [ 454*89c4ff92SAndroid Build Coastguard Worker 0 455*89c4ff92SAndroid Build Coastguard Worker ], 456*89c4ff92SAndroid Build Coastguard Worker "featureVersions": { 457*89c4ff92SAndroid Build Coastguard Worker "bindingIdsScheme": 1, 458*89c4ff92SAndroid Build Coastguard Worker "constantTensorsAsInputs": 1 459*89c4ff92SAndroid Build Coastguard Worker } 460*89c4ff92SAndroid Build Coastguard Worker } 461*89c4ff92SAndroid Build Coastguard Worker )"; 462*89c4ff92SAndroid Build Coastguard Worker Setup(); 463*89c4ff92SAndroid Build Coastguard Worker } 464*89c4ff92SAndroid Build Coastguard Worker }; 465*89c4ff92SAndroid Build Coastguard Worker 466*89c4ff92SAndroid Build Coastguard Worker // This test uses a model that was created before weights layout scheme version was added to our flatbuffers 467*89c4ff92SAndroid Build Coastguard Worker // file. It ensures older models can still be read and executed 468*89c4ff92SAndroid Build Coastguard Worker // featureVersion weights layout scheme 1 indicates a change in the depthwise weights layout within 469*89c4ff92SAndroid Build Coastguard Worker // armm from [M,I,H,W] --> [1,H,W,I*M] 470*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(DepthwiseConv2dFlatbufferVersion1FixtureOld, "DepthwiseConv2d_FlatbufferVersion1Old") 471*89c4ff92SAndroid Build Coastguard Worker { 472*89c4ff92SAndroid Build Coastguard Worker RunTest<4, armnn::DataType::QAsymmS8>( 473*89c4ff92SAndroid Build Coastguard Worker 0, 474*89c4ff92SAndroid Build Coastguard Worker { 3,2,0,0,4,3,0,1,2, 475*89c4ff92SAndroid Build Coastguard Worker 0,1,3,0,4,2,2,2,3, 476*89c4ff92SAndroid Build Coastguard Worker 2,4,3,2,0,4,3,4,0}, 477*89c4ff92SAndroid Build Coastguard Worker { 15,60,10,11,37,20, 0,18,17, 478*89c4ff92SAndroid Build Coastguard Worker 20,65,28,28,74,26,12,20,18, 479*89c4ff92SAndroid Build Coastguard Worker 25,36,12,37,42,25,29,14, 9}); 480*89c4ff92SAndroid Build Coastguard Worker } 481*89c4ff92SAndroid Build Coastguard Worker 482*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(DepthwiseConv2dFlatbufferVersion1Fixture, 483*89c4ff92SAndroid Build Coastguard Worker "DepthwiseConv2d_FlatbufferVersion1_WeightsAndBiasesAsConstantLayers") 484*89c4ff92SAndroid Build Coastguard Worker { 485*89c4ff92SAndroid Build Coastguard Worker RunTest<4, armnn::DataType::QAsymmS8>( 486*89c4ff92SAndroid Build Coastguard Worker 0, 487*89c4ff92SAndroid Build Coastguard Worker {{"InputLayer", { 3,2,0,0,4,3,0,1,2, 488*89c4ff92SAndroid Build Coastguard Worker 0,1,3,0,4,2,2,2,3, 489*89c4ff92SAndroid Build Coastguard Worker 2,4,3,2,0,4,3,4,0}}}, 490*89c4ff92SAndroid Build Coastguard Worker {{"OutputLayer", { 15,60,10,11,37,20, 0,18,17, 491*89c4ff92SAndroid Build Coastguard Worker 20,65,28,28,74,26,12,20,18, 492*89c4ff92SAndroid Build Coastguard Worker 25,36,12,37,42,25,29,14, 9}}}); 493*89c4ff92SAndroid Build Coastguard Worker } 494*89c4ff92SAndroid Build Coastguard Worker 495*89c4ff92SAndroid Build Coastguard Worker }