1*89c4ff92SAndroid Build Coastguard Worker// 2*89c4ff92SAndroid Build Coastguard Worker// Copyright © 2017,2019-2023 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 Workernamespace armnnSerializer; 7*89c4ff92SAndroid Build Coastguard Worker 8*89c4ff92SAndroid Build Coastguard Workerfile_identifier "ARMN"; 9*89c4ff92SAndroid Build Coastguard Worker 10*89c4ff92SAndroid Build Coastguard Workerfile_extension "armnn"; 11*89c4ff92SAndroid Build Coastguard Worker 12*89c4ff92SAndroid Build Coastguard Workerenum ActivationFunction : byte { 13*89c4ff92SAndroid Build Coastguard Worker Sigmoid = 0, 14*89c4ff92SAndroid Build Coastguard Worker TanH = 1, 15*89c4ff92SAndroid Build Coastguard Worker Linear = 2, 16*89c4ff92SAndroid Build Coastguard Worker ReLu = 3, 17*89c4ff92SAndroid Build Coastguard Worker BoundedReLu = 4, 18*89c4ff92SAndroid Build Coastguard Worker SoftReLu = 5, 19*89c4ff92SAndroid Build Coastguard Worker LeakyReLu = 6, 20*89c4ff92SAndroid Build Coastguard Worker Abs = 7, 21*89c4ff92SAndroid Build Coastguard Worker Sqrt = 8, 22*89c4ff92SAndroid Build Coastguard Worker Square = 9, 23*89c4ff92SAndroid Build Coastguard Worker Elu = 10, 24*89c4ff92SAndroid Build Coastguard Worker HardSwish = 11 25*89c4ff92SAndroid Build Coastguard Worker} 26*89c4ff92SAndroid Build Coastguard Worker 27*89c4ff92SAndroid Build Coastguard Workerenum ArgMinMaxFunction : byte { 28*89c4ff92SAndroid Build Coastguard Worker Min = 0, 29*89c4ff92SAndroid Build Coastguard Worker Max = 1 30*89c4ff92SAndroid Build Coastguard Worker} 31*89c4ff92SAndroid Build Coastguard Worker 32*89c4ff92SAndroid Build Coastguard Workerenum DataType : byte { 33*89c4ff92SAndroid Build Coastguard Worker Float16 = 0, 34*89c4ff92SAndroid Build Coastguard Worker Float32 = 1, 35*89c4ff92SAndroid Build Coastguard Worker QuantisedAsymm8 = 2, // deprecated 36*89c4ff92SAndroid Build Coastguard Worker Signed32 = 3, 37*89c4ff92SAndroid Build Coastguard Worker Boolean = 4, 38*89c4ff92SAndroid Build Coastguard Worker QuantisedSymm16 = 5, // deprecated 39*89c4ff92SAndroid Build Coastguard Worker QAsymmU8 = 6, 40*89c4ff92SAndroid Build Coastguard Worker QSymmS16 = 7, 41*89c4ff92SAndroid Build Coastguard Worker QAsymmS8 = 8, 42*89c4ff92SAndroid Build Coastguard Worker QSymmS8 = 9, 43*89c4ff92SAndroid Build Coastguard Worker Signed64 = 10 44*89c4ff92SAndroid Build Coastguard Worker} 45*89c4ff92SAndroid Build Coastguard Worker 46*89c4ff92SAndroid Build Coastguard Workerenum DataLayout : byte { 47*89c4ff92SAndroid Build Coastguard Worker NHWC = 0, 48*89c4ff92SAndroid Build Coastguard Worker NCHW = 1, 49*89c4ff92SAndroid Build Coastguard Worker NDHWC = 2, 50*89c4ff92SAndroid Build Coastguard Worker NCDHW = 3 51*89c4ff92SAndroid Build Coastguard Worker} 52*89c4ff92SAndroid Build Coastguard Worker 53*89c4ff92SAndroid Build Coastguard Workerenum ReduceOperation: byte { 54*89c4ff92SAndroid Build Coastguard Worker Sum = 0, 55*89c4ff92SAndroid Build Coastguard Worker Max = 1, 56*89c4ff92SAndroid Build Coastguard Worker Mean = 2, 57*89c4ff92SAndroid Build Coastguard Worker Min = 3, 58*89c4ff92SAndroid Build Coastguard Worker Prod = 4 59*89c4ff92SAndroid Build Coastguard Worker} 60*89c4ff92SAndroid Build Coastguard Worker 61*89c4ff92SAndroid Build Coastguard Workerenum ResizeMethod: byte { 62*89c4ff92SAndroid Build Coastguard Worker NearestNeighbor = 0, 63*89c4ff92SAndroid Build Coastguard Worker Bilinear = 1, 64*89c4ff92SAndroid Build Coastguard Worker} 65*89c4ff92SAndroid Build Coastguard Worker 66*89c4ff92SAndroid Build Coastguard Workertable TensorInfo { 67*89c4ff92SAndroid Build Coastguard Worker dimensions:[uint]; 68*89c4ff92SAndroid Build Coastguard Worker dataType:DataType; 69*89c4ff92SAndroid Build Coastguard Worker quantizationScale:float = 1.0; // @deprecated Use quantizationScales instead 70*89c4ff92SAndroid Build Coastguard Worker quantizationOffset:int = 0; 71*89c4ff92SAndroid Build Coastguard Worker quantizationScales:[float]; 72*89c4ff92SAndroid Build Coastguard Worker quantizationDim:uint; 73*89c4ff92SAndroid Build Coastguard Worker dimensionality:uint = 1; 74*89c4ff92SAndroid Build Coastguard Worker dimensionSpecificity:[bool]; 75*89c4ff92SAndroid Build Coastguard Worker isConstant:bool = false; 76*89c4ff92SAndroid Build Coastguard Worker} 77*89c4ff92SAndroid Build Coastguard Worker 78*89c4ff92SAndroid Build Coastguard Workerstruct Connection { 79*89c4ff92SAndroid Build Coastguard Worker sourceLayerIndex:uint; 80*89c4ff92SAndroid Build Coastguard Worker outputSlotIndex:uint; 81*89c4ff92SAndroid Build Coastguard Worker} 82*89c4ff92SAndroid Build Coastguard Worker 83*89c4ff92SAndroid Build Coastguard Workertable ByteData { 84*89c4ff92SAndroid Build Coastguard Worker data:[byte]; 85*89c4ff92SAndroid Build Coastguard Worker} 86*89c4ff92SAndroid Build Coastguard Worker 87*89c4ff92SAndroid Build Coastguard Workertable ShortData { 88*89c4ff92SAndroid Build Coastguard Worker data:[short]; 89*89c4ff92SAndroid Build Coastguard Worker} 90*89c4ff92SAndroid Build Coastguard Worker 91*89c4ff92SAndroid Build Coastguard Workertable IntData { 92*89c4ff92SAndroid Build Coastguard Worker data:[int]; 93*89c4ff92SAndroid Build Coastguard Worker} 94*89c4ff92SAndroid Build Coastguard Worker 95*89c4ff92SAndroid Build Coastguard Workertable LongData { 96*89c4ff92SAndroid Build Coastguard Worker data:[long]; 97*89c4ff92SAndroid Build Coastguard Worker} 98*89c4ff92SAndroid Build Coastguard Worker 99*89c4ff92SAndroid Build Coastguard Workerunion ConstTensorData { ByteData, ShortData, IntData, LongData } 100*89c4ff92SAndroid Build Coastguard Worker 101*89c4ff92SAndroid Build Coastguard Workertable ConstTensor { 102*89c4ff92SAndroid Build Coastguard Worker info:TensorInfo; 103*89c4ff92SAndroid Build Coastguard Worker data:ConstTensorData; 104*89c4ff92SAndroid Build Coastguard Worker} 105*89c4ff92SAndroid Build Coastguard Worker 106*89c4ff92SAndroid Build Coastguard Workertable InputSlot { 107*89c4ff92SAndroid Build Coastguard Worker index:uint; 108*89c4ff92SAndroid Build Coastguard Worker connection:Connection; 109*89c4ff92SAndroid Build Coastguard Worker} 110*89c4ff92SAndroid Build Coastguard Worker 111*89c4ff92SAndroid Build Coastguard Workertable OutputSlot { 112*89c4ff92SAndroid Build Coastguard Worker index:uint; 113*89c4ff92SAndroid Build Coastguard Worker tensorInfo:TensorInfo; 114*89c4ff92SAndroid Build Coastguard Worker} 115*89c4ff92SAndroid Build Coastguard Worker 116*89c4ff92SAndroid Build Coastguard Workerenum LayerType : uint { 117*89c4ff92SAndroid Build Coastguard Worker Addition = 0, 118*89c4ff92SAndroid Build Coastguard Worker Input = 1, 119*89c4ff92SAndroid Build Coastguard Worker Multiplication = 2, 120*89c4ff92SAndroid Build Coastguard Worker Output = 3, 121*89c4ff92SAndroid Build Coastguard Worker Pooling2d = 4, 122*89c4ff92SAndroid Build Coastguard Worker Reshape = 5, 123*89c4ff92SAndroid Build Coastguard Worker Softmax = 6, 124*89c4ff92SAndroid Build Coastguard Worker Convolution2d = 7, 125*89c4ff92SAndroid Build Coastguard Worker DepthwiseConvolution2d = 8, 126*89c4ff92SAndroid Build Coastguard Worker Activation = 9, 127*89c4ff92SAndroid Build Coastguard Worker Permute = 10, 128*89c4ff92SAndroid Build Coastguard Worker FullyConnected = 11, 129*89c4ff92SAndroid Build Coastguard Worker Constant = 12, 130*89c4ff92SAndroid Build Coastguard Worker SpaceToBatchNd = 13, 131*89c4ff92SAndroid Build Coastguard Worker BatchToSpaceNd = 14, 132*89c4ff92SAndroid Build Coastguard Worker Division = 15, 133*89c4ff92SAndroid Build Coastguard Worker Minimum = 16, 134*89c4ff92SAndroid Build Coastguard Worker Equal = 17, 135*89c4ff92SAndroid Build Coastguard Worker Maximum = 18, 136*89c4ff92SAndroid Build Coastguard Worker Normalization = 19, 137*89c4ff92SAndroid Build Coastguard Worker Pad = 20, 138*89c4ff92SAndroid Build Coastguard Worker Rsqrt = 21, 139*89c4ff92SAndroid Build Coastguard Worker Floor = 22, 140*89c4ff92SAndroid Build Coastguard Worker BatchNormalization = 23, 141*89c4ff92SAndroid Build Coastguard Worker Greater = 24, 142*89c4ff92SAndroid Build Coastguard Worker ResizeBilinear = 25, 143*89c4ff92SAndroid Build Coastguard Worker Subtraction = 26, 144*89c4ff92SAndroid Build Coastguard Worker StridedSlice = 27, 145*89c4ff92SAndroid Build Coastguard Worker Gather = 28, 146*89c4ff92SAndroid Build Coastguard Worker Mean = 29, 147*89c4ff92SAndroid Build Coastguard Worker Merger = 30, 148*89c4ff92SAndroid Build Coastguard Worker L2Normalization = 31, 149*89c4ff92SAndroid Build Coastguard Worker Splitter = 32, 150*89c4ff92SAndroid Build Coastguard Worker DetectionPostProcess = 33, 151*89c4ff92SAndroid Build Coastguard Worker Lstm = 34, 152*89c4ff92SAndroid Build Coastguard Worker Quantize = 35, 153*89c4ff92SAndroid Build Coastguard Worker Dequantize = 36, 154*89c4ff92SAndroid Build Coastguard Worker Merge = 37, 155*89c4ff92SAndroid Build Coastguard Worker Switch = 38, 156*89c4ff92SAndroid Build Coastguard Worker Concat = 39, 157*89c4ff92SAndroid Build Coastguard Worker SpaceToDepth = 40, 158*89c4ff92SAndroid Build Coastguard Worker Prelu = 41, 159*89c4ff92SAndroid Build Coastguard Worker TransposeConvolution2d = 42, 160*89c4ff92SAndroid Build Coastguard Worker Resize = 43, 161*89c4ff92SAndroid Build Coastguard Worker Stack = 44, 162*89c4ff92SAndroid Build Coastguard Worker QuantizedLstm = 45, 163*89c4ff92SAndroid Build Coastguard Worker Abs = 46, 164*89c4ff92SAndroid Build Coastguard Worker ArgMinMax = 47, 165*89c4ff92SAndroid Build Coastguard Worker Slice = 48, 166*89c4ff92SAndroid Build Coastguard Worker DepthToSpace = 49, 167*89c4ff92SAndroid Build Coastguard Worker InstanceNormalization = 50, 168*89c4ff92SAndroid Build Coastguard Worker LogSoftmax = 51, 169*89c4ff92SAndroid Build Coastguard Worker Comparison = 52, 170*89c4ff92SAndroid Build Coastguard Worker StandIn = 53, 171*89c4ff92SAndroid Build Coastguard Worker ElementwiseUnary = 54, 172*89c4ff92SAndroid Build Coastguard Worker Transpose = 55, 173*89c4ff92SAndroid Build Coastguard Worker QLstm = 56, 174*89c4ff92SAndroid Build Coastguard Worker Fill = 57, 175*89c4ff92SAndroid Build Coastguard Worker Rank = 58, 176*89c4ff92SAndroid Build Coastguard Worker LogicalBinary = 59, 177*89c4ff92SAndroid Build Coastguard Worker Reduce = 60, 178*89c4ff92SAndroid Build Coastguard Worker Cast = 61, 179*89c4ff92SAndroid Build Coastguard Worker Shape = 62, 180*89c4ff92SAndroid Build Coastguard Worker UnidirectionalSequenceLstm = 63, 181*89c4ff92SAndroid Build Coastguard Worker ChannelShuffle = 64, 182*89c4ff92SAndroid Build Coastguard Worker Convolution3d = 65, 183*89c4ff92SAndroid Build Coastguard Worker Pooling3d = 66, 184*89c4ff92SAndroid Build Coastguard Worker GatherNd = 67, 185*89c4ff92SAndroid Build Coastguard Worker BatchMatMul = 68, 186*89c4ff92SAndroid Build Coastguard Worker ElementwiseBinary = 69, 187*89c4ff92SAndroid Build Coastguard Worker} 188*89c4ff92SAndroid Build Coastguard Worker 189*89c4ff92SAndroid Build Coastguard Worker// Base layer table to be used as part of other layers 190*89c4ff92SAndroid Build Coastguard Workertable LayerBase { 191*89c4ff92SAndroid Build Coastguard Worker index:uint; 192*89c4ff92SAndroid Build Coastguard Worker layerName:string; 193*89c4ff92SAndroid Build Coastguard Worker layerType:LayerType; 194*89c4ff92SAndroid Build Coastguard Worker inputSlots:[InputSlot]; 195*89c4ff92SAndroid Build Coastguard Worker outputSlots:[OutputSlot]; 196*89c4ff92SAndroid Build Coastguard Worker} 197*89c4ff92SAndroid Build Coastguard Worker 198*89c4ff92SAndroid Build Coastguard Workertable BindableLayerBase { 199*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 200*89c4ff92SAndroid Build Coastguard Worker layerBindingId:int; 201*89c4ff92SAndroid Build Coastguard Worker} 202*89c4ff92SAndroid Build Coastguard Worker 203*89c4ff92SAndroid Build Coastguard Worker// Table for each layer defined below 204*89c4ff92SAndroid Build Coastguard Worker 205*89c4ff92SAndroid Build Coastguard Worker/// @deprecated Use ElementwiseUnaryLayer instead 206*89c4ff92SAndroid Build Coastguard Workertable AbsLayer { 207*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 208*89c4ff92SAndroid Build Coastguard Worker} 209*89c4ff92SAndroid Build Coastguard Worker 210*89c4ff92SAndroid Build Coastguard Workertable ActivationLayer { 211*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 212*89c4ff92SAndroid Build Coastguard Worker descriptor:ActivationDescriptor; 213*89c4ff92SAndroid Build Coastguard Worker} 214*89c4ff92SAndroid Build Coastguard Worker 215*89c4ff92SAndroid Build Coastguard Workertable ActivationDescriptor { 216*89c4ff92SAndroid Build Coastguard Worker activationFunction:ActivationFunction = Sigmoid; 217*89c4ff92SAndroid Build Coastguard Worker a:float; 218*89c4ff92SAndroid Build Coastguard Worker b:float; 219*89c4ff92SAndroid Build Coastguard Worker} 220*89c4ff92SAndroid Build Coastguard Worker 221*89c4ff92SAndroid Build Coastguard Workertable AdditionLayer { 222*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 223*89c4ff92SAndroid Build Coastguard Worker} 224*89c4ff92SAndroid Build Coastguard Worker 225*89c4ff92SAndroid Build Coastguard Workertable ArgMinMaxLayer { 226*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 227*89c4ff92SAndroid Build Coastguard Worker descriptor:ArgMinMaxDescriptor; 228*89c4ff92SAndroid Build Coastguard Worker} 229*89c4ff92SAndroid Build Coastguard Worker 230*89c4ff92SAndroid Build Coastguard Workertable ArgMinMaxDescriptor{ 231*89c4ff92SAndroid Build Coastguard Worker argMinMaxFunction:ArgMinMaxFunction; 232*89c4ff92SAndroid Build Coastguard Worker axis:int; 233*89c4ff92SAndroid Build Coastguard Worker} 234*89c4ff92SAndroid Build Coastguard Worker 235*89c4ff92SAndroid Build Coastguard Workertable CastLayer { 236*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 237*89c4ff92SAndroid Build Coastguard Worker} 238*89c4ff92SAndroid Build Coastguard Worker 239*89c4ff92SAndroid Build Coastguard Workertable ChannelShuffleLayer { 240*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 241*89c4ff92SAndroid Build Coastguard Worker descriptor:ChannelShuffleDescriptor; 242*89c4ff92SAndroid Build Coastguard Worker} 243*89c4ff92SAndroid Build Coastguard Worker 244*89c4ff92SAndroid Build Coastguard Workertable ChannelShuffleDescriptor { 245*89c4ff92SAndroid Build Coastguard Worker axis:uint = 0; 246*89c4ff92SAndroid Build Coastguard Worker numGroups:uint = 0; 247*89c4ff92SAndroid Build Coastguard Worker} 248*89c4ff92SAndroid Build Coastguard Worker 249*89c4ff92SAndroid Build Coastguard Workerenum ComparisonOperation : byte { 250*89c4ff92SAndroid Build Coastguard Worker Equal = 0, 251*89c4ff92SAndroid Build Coastguard Worker Greater = 1, 252*89c4ff92SAndroid Build Coastguard Worker GreaterOrEqual = 2, 253*89c4ff92SAndroid Build Coastguard Worker Less = 3, 254*89c4ff92SAndroid Build Coastguard Worker LessOrEqual = 4, 255*89c4ff92SAndroid Build Coastguard Worker NotEqual = 5 256*89c4ff92SAndroid Build Coastguard Worker} 257*89c4ff92SAndroid Build Coastguard Worker 258*89c4ff92SAndroid Build Coastguard Workertable ComparisonDescriptor { 259*89c4ff92SAndroid Build Coastguard Worker operation:ComparisonOperation; 260*89c4ff92SAndroid Build Coastguard Worker} 261*89c4ff92SAndroid Build Coastguard Worker 262*89c4ff92SAndroid Build Coastguard Workertable ComparisonLayer { 263*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 264*89c4ff92SAndroid Build Coastguard Worker descriptor:ComparisonDescriptor; 265*89c4ff92SAndroid Build Coastguard Worker} 266*89c4ff92SAndroid Build Coastguard Worker 267*89c4ff92SAndroid Build Coastguard Workertable ConstantLayer { 268*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 269*89c4ff92SAndroid Build Coastguard Worker input:ConstTensor; 270*89c4ff92SAndroid Build Coastguard Worker} 271*89c4ff92SAndroid Build Coastguard Worker 272*89c4ff92SAndroid Build Coastguard Workertable Convolution2dLayer { 273*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 274*89c4ff92SAndroid Build Coastguard Worker descriptor:Convolution2dDescriptor; 275*89c4ff92SAndroid Build Coastguard Worker weights:ConstTensor; 276*89c4ff92SAndroid Build Coastguard Worker biases:ConstTensor; 277*89c4ff92SAndroid Build Coastguard Worker} 278*89c4ff92SAndroid Build Coastguard Worker 279*89c4ff92SAndroid Build Coastguard Workertable Convolution2dDescriptor { 280*89c4ff92SAndroid Build Coastguard Worker padLeft:uint; 281*89c4ff92SAndroid Build Coastguard Worker padRight:uint; 282*89c4ff92SAndroid Build Coastguard Worker padTop:uint; 283*89c4ff92SAndroid Build Coastguard Worker padBottom:uint; 284*89c4ff92SAndroid Build Coastguard Worker strideX:uint; 285*89c4ff92SAndroid Build Coastguard Worker strideY:uint; 286*89c4ff92SAndroid Build Coastguard Worker dilationX:uint = 1; 287*89c4ff92SAndroid Build Coastguard Worker dilationY:uint = 1; 288*89c4ff92SAndroid Build Coastguard Worker biasEnabled:bool = false; 289*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout = NCHW; 290*89c4ff92SAndroid Build Coastguard Worker} 291*89c4ff92SAndroid Build Coastguard Worker 292*89c4ff92SAndroid Build Coastguard Workertable Convolution3dLayer { 293*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 294*89c4ff92SAndroid Build Coastguard Worker descriptor:Convolution3dDescriptor; 295*89c4ff92SAndroid Build Coastguard Worker} 296*89c4ff92SAndroid Build Coastguard Worker 297*89c4ff92SAndroid Build Coastguard Workertable Convolution3dDescriptor { 298*89c4ff92SAndroid Build Coastguard Worker padLeft:uint; 299*89c4ff92SAndroid Build Coastguard Worker padRight:uint; 300*89c4ff92SAndroid Build Coastguard Worker padTop:uint; 301*89c4ff92SAndroid Build Coastguard Worker padBottom:uint; 302*89c4ff92SAndroid Build Coastguard Worker padFront:uint; 303*89c4ff92SAndroid Build Coastguard Worker padBack:uint; 304*89c4ff92SAndroid Build Coastguard Worker strideX:uint; 305*89c4ff92SAndroid Build Coastguard Worker strideY:uint; 306*89c4ff92SAndroid Build Coastguard Worker strideZ:uint; 307*89c4ff92SAndroid Build Coastguard Worker dilationX:uint = 1; 308*89c4ff92SAndroid Build Coastguard Worker dilationY:uint = 1; 309*89c4ff92SAndroid Build Coastguard Worker dilationZ:uint = 1; 310*89c4ff92SAndroid Build Coastguard Worker biasEnabled:bool = false; 311*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout = NDHWC; 312*89c4ff92SAndroid Build Coastguard Worker} 313*89c4ff92SAndroid Build Coastguard Worker 314*89c4ff92SAndroid Build Coastguard Workertable DepthToSpaceLayer { 315*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 316*89c4ff92SAndroid Build Coastguard Worker descriptor:DepthToSpaceDescriptor; 317*89c4ff92SAndroid Build Coastguard Worker} 318*89c4ff92SAndroid Build Coastguard Worker 319*89c4ff92SAndroid Build Coastguard Workertable DepthToSpaceDescriptor { 320*89c4ff92SAndroid Build Coastguard Worker blockSize:uint; 321*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 322*89c4ff92SAndroid Build Coastguard Worker} 323*89c4ff92SAndroid Build Coastguard Worker 324*89c4ff92SAndroid Build Coastguard Workertable DivisionLayer { 325*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 326*89c4ff92SAndroid Build Coastguard Worker} 327*89c4ff92SAndroid Build Coastguard Worker 328*89c4ff92SAndroid Build Coastguard Workerenum BinaryOperation : byte { 329*89c4ff92SAndroid Build Coastguard Worker Add = 0, 330*89c4ff92SAndroid Build Coastguard Worker Div = 1, 331*89c4ff92SAndroid Build Coastguard Worker Maximum = 2, 332*89c4ff92SAndroid Build Coastguard Worker Minimum = 3, 333*89c4ff92SAndroid Build Coastguard Worker Mul = 4, 334*89c4ff92SAndroid Build Coastguard Worker Sub = 5 335*89c4ff92SAndroid Build Coastguard Worker} 336*89c4ff92SAndroid Build Coastguard Worker 337*89c4ff92SAndroid Build Coastguard Workertable ElementwiseBinaryDescriptor { 338*89c4ff92SAndroid Build Coastguard Worker operation:BinaryOperation; 339*89c4ff92SAndroid Build Coastguard Worker} 340*89c4ff92SAndroid Build Coastguard Worker 341*89c4ff92SAndroid Build Coastguard Workertable ElementwiseBinaryLayer { 342*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 343*89c4ff92SAndroid Build Coastguard Worker descriptor:ElementwiseBinaryDescriptor; 344*89c4ff92SAndroid Build Coastguard Worker} 345*89c4ff92SAndroid Build Coastguard Worker 346*89c4ff92SAndroid Build Coastguard Workerenum UnaryOperation : byte { 347*89c4ff92SAndroid Build Coastguard Worker Abs = 0, 348*89c4ff92SAndroid Build Coastguard Worker Rsqrt = 1, 349*89c4ff92SAndroid Build Coastguard Worker Sqrt = 2, 350*89c4ff92SAndroid Build Coastguard Worker Exp = 3, 351*89c4ff92SAndroid Build Coastguard Worker Neg = 4, 352*89c4ff92SAndroid Build Coastguard Worker LogicalNot = 5, 353*89c4ff92SAndroid Build Coastguard Worker Log = 6, 354*89c4ff92SAndroid Build Coastguard Worker Sin = 7, 355*89c4ff92SAndroid Build Coastguard Worker Ceil = 8 356*89c4ff92SAndroid Build Coastguard Worker} 357*89c4ff92SAndroid Build Coastguard Worker 358*89c4ff92SAndroid Build Coastguard Workertable ElementwiseUnaryDescriptor { 359*89c4ff92SAndroid Build Coastguard Worker operation:UnaryOperation; 360*89c4ff92SAndroid Build Coastguard Worker} 361*89c4ff92SAndroid Build Coastguard Worker 362*89c4ff92SAndroid Build Coastguard Workertable ElementwiseUnaryLayer { 363*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 364*89c4ff92SAndroid Build Coastguard Worker descriptor:ElementwiseUnaryDescriptor; 365*89c4ff92SAndroid Build Coastguard Worker} 366*89c4ff92SAndroid Build Coastguard Worker 367*89c4ff92SAndroid Build Coastguard Worker/// @deprecated Use ComparisonLayer instead 368*89c4ff92SAndroid Build Coastguard Workertable EqualLayer { 369*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 370*89c4ff92SAndroid Build Coastguard Worker} 371*89c4ff92SAndroid Build Coastguard Worker 372*89c4ff92SAndroid Build Coastguard Workertable FillLayer { 373*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 374*89c4ff92SAndroid Build Coastguard Worker descriptor:FillDescriptor; 375*89c4ff92SAndroid Build Coastguard Worker} 376*89c4ff92SAndroid Build Coastguard Worker 377*89c4ff92SAndroid Build Coastguard Workertable FillDescriptor { 378*89c4ff92SAndroid Build Coastguard Worker value:float; 379*89c4ff92SAndroid Build Coastguard Worker} 380*89c4ff92SAndroid Build Coastguard Worker 381*89c4ff92SAndroid Build Coastguard Workertable FloorLayer{ 382*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 383*89c4ff92SAndroid Build Coastguard Worker} 384*89c4ff92SAndroid Build Coastguard Worker 385*89c4ff92SAndroid Build Coastguard Workertable FullyConnectedLayer { 386*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 387*89c4ff92SAndroid Build Coastguard Worker descriptor:FullyConnectedDescriptor; 388*89c4ff92SAndroid Build Coastguard Worker weights:ConstTensor; // ConstTensors are now passed as inputs. 389*89c4ff92SAndroid Build Coastguard Worker biases:ConstTensor; 390*89c4ff92SAndroid Build Coastguard Worker} 391*89c4ff92SAndroid Build Coastguard Worker 392*89c4ff92SAndroid Build Coastguard Workertable FullyConnectedDescriptor { 393*89c4ff92SAndroid Build Coastguard Worker biasEnabled:bool = false; 394*89c4ff92SAndroid Build Coastguard Worker transposeWeightsMatrix:bool = false; 395*89c4ff92SAndroid Build Coastguard Worker constantWeights:bool = true; 396*89c4ff92SAndroid Build Coastguard Worker} 397*89c4ff92SAndroid Build Coastguard Worker 398*89c4ff92SAndroid Build Coastguard Workertable GatherLayer { 399*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 400*89c4ff92SAndroid Build Coastguard Worker descriptor:GatherDescriptor; 401*89c4ff92SAndroid Build Coastguard Worker} 402*89c4ff92SAndroid Build Coastguard Worker 403*89c4ff92SAndroid Build Coastguard Workertable GatherDescriptor { 404*89c4ff92SAndroid Build Coastguard Worker axis:int = 0; 405*89c4ff92SAndroid Build Coastguard Worker} 406*89c4ff92SAndroid Build Coastguard Worker 407*89c4ff92SAndroid Build Coastguard Workertable GatherNdLayer { 408*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 409*89c4ff92SAndroid Build Coastguard Worker} 410*89c4ff92SAndroid Build Coastguard Worker 411*89c4ff92SAndroid Build Coastguard Worker/// @deprecated Use ComparisonLayer instead 412*89c4ff92SAndroid Build Coastguard Workertable GreaterLayer { 413*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 414*89c4ff92SAndroid Build Coastguard Worker} 415*89c4ff92SAndroid Build Coastguard Worker 416*89c4ff92SAndroid Build Coastguard Workertable InputLayer { 417*89c4ff92SAndroid Build Coastguard Worker base:BindableLayerBase; 418*89c4ff92SAndroid Build Coastguard Worker} 419*89c4ff92SAndroid Build Coastguard Worker 420*89c4ff92SAndroid Build Coastguard Workertable InstanceNormalizationLayer { 421*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 422*89c4ff92SAndroid Build Coastguard Worker descriptor:InstanceNormalizationDescriptor; 423*89c4ff92SAndroid Build Coastguard Worker} 424*89c4ff92SAndroid Build Coastguard Worker 425*89c4ff92SAndroid Build Coastguard Workertable InstanceNormalizationDescriptor { 426*89c4ff92SAndroid Build Coastguard Worker gamma:float; 427*89c4ff92SAndroid Build Coastguard Worker beta:float; 428*89c4ff92SAndroid Build Coastguard Worker eps:float; 429*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 430*89c4ff92SAndroid Build Coastguard Worker} 431*89c4ff92SAndroid Build Coastguard Worker 432*89c4ff92SAndroid Build Coastguard Workertable LogSoftmaxLayer { 433*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 434*89c4ff92SAndroid Build Coastguard Worker descriptor:LogSoftmaxDescriptor; 435*89c4ff92SAndroid Build Coastguard Worker} 436*89c4ff92SAndroid Build Coastguard Worker 437*89c4ff92SAndroid Build Coastguard Workertable LogSoftmaxDescriptor { 438*89c4ff92SAndroid Build Coastguard Worker beta:float = 1; 439*89c4ff92SAndroid Build Coastguard Worker axis:int = -1; 440*89c4ff92SAndroid Build Coastguard Worker} 441*89c4ff92SAndroid Build Coastguard Worker 442*89c4ff92SAndroid Build Coastguard Workertable L2NormalizationLayer { 443*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 444*89c4ff92SAndroid Build Coastguard Worker descriptor:L2NormalizationDescriptor; 445*89c4ff92SAndroid Build Coastguard Worker} 446*89c4ff92SAndroid Build Coastguard Worker 447*89c4ff92SAndroid Build Coastguard Workertable L2NormalizationDescriptor { 448*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout = NCHW; 449*89c4ff92SAndroid Build Coastguard Worker eps:float = 1e-12; 450*89c4ff92SAndroid Build Coastguard Worker} 451*89c4ff92SAndroid Build Coastguard Worker 452*89c4ff92SAndroid Build Coastguard Workerenum LogicalBinaryOperation : byte { 453*89c4ff92SAndroid Build Coastguard Worker LogicalAnd = 0, 454*89c4ff92SAndroid Build Coastguard Worker LogicalOr = 1 455*89c4ff92SAndroid Build Coastguard Worker} 456*89c4ff92SAndroid Build Coastguard Worker 457*89c4ff92SAndroid Build Coastguard Workertable LogicalBinaryDescriptor { 458*89c4ff92SAndroid Build Coastguard Worker operation:LogicalBinaryOperation; 459*89c4ff92SAndroid Build Coastguard Worker} 460*89c4ff92SAndroid Build Coastguard Worker 461*89c4ff92SAndroid Build Coastguard Workertable LogicalBinaryLayer { 462*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 463*89c4ff92SAndroid Build Coastguard Worker descriptor:LogicalBinaryDescriptor; 464*89c4ff92SAndroid Build Coastguard Worker} 465*89c4ff92SAndroid Build Coastguard Worker 466*89c4ff92SAndroid Build Coastguard Workertable MinimumLayer { 467*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 468*89c4ff92SAndroid Build Coastguard Worker} 469*89c4ff92SAndroid Build Coastguard Worker 470*89c4ff92SAndroid Build Coastguard Workertable MaximumLayer { 471*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 472*89c4ff92SAndroid Build Coastguard Worker} 473*89c4ff92SAndroid Build Coastguard Worker 474*89c4ff92SAndroid Build Coastguard Workertable MultiplicationLayer { 475*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 476*89c4ff92SAndroid Build Coastguard Worker} 477*89c4ff92SAndroid Build Coastguard Worker 478*89c4ff92SAndroid Build Coastguard Workertable Pooling2dLayer { 479*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 480*89c4ff92SAndroid Build Coastguard Worker descriptor:Pooling2dDescriptor; 481*89c4ff92SAndroid Build Coastguard Worker} 482*89c4ff92SAndroid Build Coastguard Worker 483*89c4ff92SAndroid Build Coastguard Workertable Pooling3dLayer { 484*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 485*89c4ff92SAndroid Build Coastguard Worker descriptor:Pooling3dDescriptor; 486*89c4ff92SAndroid Build Coastguard Worker} 487*89c4ff92SAndroid Build Coastguard Worker 488*89c4ff92SAndroid Build Coastguard Workerenum PoolingAlgorithm : byte { 489*89c4ff92SAndroid Build Coastguard Worker Max = 0, 490*89c4ff92SAndroid Build Coastguard Worker Average = 1, 491*89c4ff92SAndroid Build Coastguard Worker L2 = 2 492*89c4ff92SAndroid Build Coastguard Worker} 493*89c4ff92SAndroid Build Coastguard Worker 494*89c4ff92SAndroid Build Coastguard Workerenum OutputShapeRounding : byte { 495*89c4ff92SAndroid Build Coastguard Worker Floor = 0, 496*89c4ff92SAndroid Build Coastguard Worker Ceiling = 1 497*89c4ff92SAndroid Build Coastguard Worker} 498*89c4ff92SAndroid Build Coastguard Worker 499*89c4ff92SAndroid Build Coastguard Workerenum PaddingMethod : byte { 500*89c4ff92SAndroid Build Coastguard Worker IgnoreValue = 0, 501*89c4ff92SAndroid Build Coastguard Worker Exclude = 1 502*89c4ff92SAndroid Build Coastguard Worker} 503*89c4ff92SAndroid Build Coastguard Worker 504*89c4ff92SAndroid Build Coastguard Workertable Pooling2dDescriptor { 505*89c4ff92SAndroid Build Coastguard Worker poolType:PoolingAlgorithm; 506*89c4ff92SAndroid Build Coastguard Worker padLeft:uint; 507*89c4ff92SAndroid Build Coastguard Worker padRight:uint; 508*89c4ff92SAndroid Build Coastguard Worker padTop:uint; 509*89c4ff92SAndroid Build Coastguard Worker padBottom:uint; 510*89c4ff92SAndroid Build Coastguard Worker poolWidth:uint; 511*89c4ff92SAndroid Build Coastguard Worker poolHeight:uint; 512*89c4ff92SAndroid Build Coastguard Worker strideX:uint; 513*89c4ff92SAndroid Build Coastguard Worker strideY:uint; 514*89c4ff92SAndroid Build Coastguard Worker outputShapeRounding:OutputShapeRounding; 515*89c4ff92SAndroid Build Coastguard Worker paddingMethod:PaddingMethod; 516*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 517*89c4ff92SAndroid Build Coastguard Worker} 518*89c4ff92SAndroid Build Coastguard Worker 519*89c4ff92SAndroid Build Coastguard Workertable Pooling3dDescriptor { 520*89c4ff92SAndroid Build Coastguard Worker poolType:PoolingAlgorithm; 521*89c4ff92SAndroid Build Coastguard Worker padLeft:uint; 522*89c4ff92SAndroid Build Coastguard Worker padRight:uint; 523*89c4ff92SAndroid Build Coastguard Worker padTop:uint; 524*89c4ff92SAndroid Build Coastguard Worker padBottom:uint; 525*89c4ff92SAndroid Build Coastguard Worker padFront:uint; 526*89c4ff92SAndroid Build Coastguard Worker padBack:uint; 527*89c4ff92SAndroid Build Coastguard Worker poolWidth:uint; 528*89c4ff92SAndroid Build Coastguard Worker poolHeight:uint; 529*89c4ff92SAndroid Build Coastguard Worker poolDepth:uint; 530*89c4ff92SAndroid Build Coastguard Worker strideX:uint; 531*89c4ff92SAndroid Build Coastguard Worker strideY:uint; 532*89c4ff92SAndroid Build Coastguard Worker strideZ:uint; 533*89c4ff92SAndroid Build Coastguard Worker outputShapeRounding:OutputShapeRounding; 534*89c4ff92SAndroid Build Coastguard Worker paddingMethod:PaddingMethod; 535*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 536*89c4ff92SAndroid Build Coastguard Worker} 537*89c4ff92SAndroid Build Coastguard Worker 538*89c4ff92SAndroid Build Coastguard Workertable QuantizeLayer { 539*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 540*89c4ff92SAndroid Build Coastguard Worker} 541*89c4ff92SAndroid Build Coastguard Worker 542*89c4ff92SAndroid Build Coastguard Workertable SoftmaxLayer { 543*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 544*89c4ff92SAndroid Build Coastguard Worker descriptor:SoftmaxDescriptor; 545*89c4ff92SAndroid Build Coastguard Worker} 546*89c4ff92SAndroid Build Coastguard Worker 547*89c4ff92SAndroid Build Coastguard Workertable SoftmaxDescriptor { 548*89c4ff92SAndroid Build Coastguard Worker beta:float; 549*89c4ff92SAndroid Build Coastguard Worker axis:int = -1; 550*89c4ff92SAndroid Build Coastguard Worker} 551*89c4ff92SAndroid Build Coastguard Worker 552*89c4ff92SAndroid Build Coastguard Workertable DepthwiseConvolution2dLayer { 553*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 554*89c4ff92SAndroid Build Coastguard Worker descriptor:DepthwiseConvolution2dDescriptor; 555*89c4ff92SAndroid Build Coastguard Worker weights:ConstTensor; 556*89c4ff92SAndroid Build Coastguard Worker biases:ConstTensor; 557*89c4ff92SAndroid Build Coastguard Worker} 558*89c4ff92SAndroid Build Coastguard Worker 559*89c4ff92SAndroid Build Coastguard Workertable DepthwiseConvolution2dDescriptor { 560*89c4ff92SAndroid Build Coastguard Worker padLeft:uint; 561*89c4ff92SAndroid Build Coastguard Worker padRight:uint; 562*89c4ff92SAndroid Build Coastguard Worker padTop:uint; 563*89c4ff92SAndroid Build Coastguard Worker padBottom:uint; 564*89c4ff92SAndroid Build Coastguard Worker strideX:uint; 565*89c4ff92SAndroid Build Coastguard Worker strideY:uint; 566*89c4ff92SAndroid Build Coastguard Worker dilationX:uint = 1; 567*89c4ff92SAndroid Build Coastguard Worker dilationY:uint = 1; 568*89c4ff92SAndroid Build Coastguard Worker biasEnabled:bool = false; 569*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout = NCHW; 570*89c4ff92SAndroid Build Coastguard Worker} 571*89c4ff92SAndroid Build Coastguard Worker 572*89c4ff92SAndroid Build Coastguard Workertable OutputLayer { 573*89c4ff92SAndroid Build Coastguard Worker base:BindableLayerBase; 574*89c4ff92SAndroid Build Coastguard Worker} 575*89c4ff92SAndroid Build Coastguard Worker 576*89c4ff92SAndroid Build Coastguard Workertable ReshapeLayer { 577*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 578*89c4ff92SAndroid Build Coastguard Worker descriptor:ReshapeDescriptor; 579*89c4ff92SAndroid Build Coastguard Worker} 580*89c4ff92SAndroid Build Coastguard Worker 581*89c4ff92SAndroid Build Coastguard Workertable ReshapeDescriptor { 582*89c4ff92SAndroid Build Coastguard Worker targetShape:[uint]; 583*89c4ff92SAndroid Build Coastguard Worker} 584*89c4ff92SAndroid Build Coastguard Worker 585*89c4ff92SAndroid Build Coastguard Workertable PermuteLayer { 586*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 587*89c4ff92SAndroid Build Coastguard Worker descriptor:PermuteDescriptor; 588*89c4ff92SAndroid Build Coastguard Worker} 589*89c4ff92SAndroid Build Coastguard Worker 590*89c4ff92SAndroid Build Coastguard Workertable PermuteDescriptor { 591*89c4ff92SAndroid Build Coastguard Worker dimMappings:[uint]; 592*89c4ff92SAndroid Build Coastguard Worker} 593*89c4ff92SAndroid Build Coastguard Worker 594*89c4ff92SAndroid Build Coastguard Workertable ShapeLayer { 595*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 596*89c4ff92SAndroid Build Coastguard Worker} 597*89c4ff92SAndroid Build Coastguard Worker 598*89c4ff92SAndroid Build Coastguard Workertable SpaceToBatchNdLayer { 599*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 600*89c4ff92SAndroid Build Coastguard Worker descriptor:SpaceToBatchNdDescriptor; 601*89c4ff92SAndroid Build Coastguard Worker} 602*89c4ff92SAndroid Build Coastguard Worker 603*89c4ff92SAndroid Build Coastguard Workertable SpaceToBatchNdDescriptor { 604*89c4ff92SAndroid Build Coastguard Worker blockShape:[uint]; 605*89c4ff92SAndroid Build Coastguard Worker padList:[uint]; 606*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 607*89c4ff92SAndroid Build Coastguard Worker} 608*89c4ff92SAndroid Build Coastguard Worker 609*89c4ff92SAndroid Build Coastguard Workertable SpaceToDepthLayer { 610*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 611*89c4ff92SAndroid Build Coastguard Worker descriptor:SpaceToDepthDescriptor; 612*89c4ff92SAndroid Build Coastguard Worker} 613*89c4ff92SAndroid Build Coastguard Worker 614*89c4ff92SAndroid Build Coastguard Workertable SpaceToDepthDescriptor { 615*89c4ff92SAndroid Build Coastguard Worker blockSize:uint; 616*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 617*89c4ff92SAndroid Build Coastguard Worker} 618*89c4ff92SAndroid Build Coastguard Worker 619*89c4ff92SAndroid Build Coastguard Workertable SubtractionLayer { 620*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 621*89c4ff92SAndroid Build Coastguard Worker} 622*89c4ff92SAndroid Build Coastguard Worker 623*89c4ff92SAndroid Build Coastguard Workertable BatchToSpaceNdLayer { 624*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 625*89c4ff92SAndroid Build Coastguard Worker descriptor:BatchToSpaceNdDescriptor; 626*89c4ff92SAndroid Build Coastguard Worker} 627*89c4ff92SAndroid Build Coastguard Worker 628*89c4ff92SAndroid Build Coastguard Workertable BatchToSpaceNdDescriptor { 629*89c4ff92SAndroid Build Coastguard Worker blockShape:[uint]; 630*89c4ff92SAndroid Build Coastguard Worker crops:[uint]; 631*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 632*89c4ff92SAndroid Build Coastguard Worker} 633*89c4ff92SAndroid Build Coastguard Worker 634*89c4ff92SAndroid Build Coastguard Workerenum NormalizationAlgorithmChannel : byte { 635*89c4ff92SAndroid Build Coastguard Worker Across = 0, 636*89c4ff92SAndroid Build Coastguard Worker Within = 1 637*89c4ff92SAndroid Build Coastguard Worker} 638*89c4ff92SAndroid Build Coastguard Worker 639*89c4ff92SAndroid Build Coastguard Workerenum NormalizationAlgorithmMethod : byte { 640*89c4ff92SAndroid Build Coastguard Worker LocalBrightness = 0, 641*89c4ff92SAndroid Build Coastguard Worker LocalContrast = 1 642*89c4ff92SAndroid Build Coastguard Worker} 643*89c4ff92SAndroid Build Coastguard Worker 644*89c4ff92SAndroid Build Coastguard Workertable NormalizationLayer { 645*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 646*89c4ff92SAndroid Build Coastguard Worker descriptor:NormalizationDescriptor; 647*89c4ff92SAndroid Build Coastguard Worker} 648*89c4ff92SAndroid Build Coastguard Worker 649*89c4ff92SAndroid Build Coastguard Workertable NormalizationDescriptor { 650*89c4ff92SAndroid Build Coastguard Worker normChannelType:NormalizationAlgorithmChannel = Across; 651*89c4ff92SAndroid Build Coastguard Worker normMethodType:NormalizationAlgorithmMethod = LocalBrightness; 652*89c4ff92SAndroid Build Coastguard Worker normSize:uint; 653*89c4ff92SAndroid Build Coastguard Worker alpha:float; 654*89c4ff92SAndroid Build Coastguard Worker beta:float; 655*89c4ff92SAndroid Build Coastguard Worker k:float; 656*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout = NCHW; 657*89c4ff92SAndroid Build Coastguard Worker} 658*89c4ff92SAndroid Build Coastguard Worker 659*89c4ff92SAndroid Build Coastguard Workertable MeanLayer { 660*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 661*89c4ff92SAndroid Build Coastguard Worker descriptor:MeanDescriptor; 662*89c4ff92SAndroid Build Coastguard Worker} 663*89c4ff92SAndroid Build Coastguard Worker 664*89c4ff92SAndroid Build Coastguard Workertable MeanDescriptor { 665*89c4ff92SAndroid Build Coastguard Worker axis:[uint]; 666*89c4ff92SAndroid Build Coastguard Worker keepDims:bool = false; 667*89c4ff92SAndroid Build Coastguard Worker} 668*89c4ff92SAndroid Build Coastguard Worker 669*89c4ff92SAndroid Build Coastguard Workertable PadLayer { 670*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 671*89c4ff92SAndroid Build Coastguard Worker descriptor:PadDescriptor; 672*89c4ff92SAndroid Build Coastguard Worker} 673*89c4ff92SAndroid Build Coastguard Worker 674*89c4ff92SAndroid Build Coastguard Workerenum PaddingMode : byte { 675*89c4ff92SAndroid Build Coastguard Worker Constant = 0, 676*89c4ff92SAndroid Build Coastguard Worker Reflect = 1, 677*89c4ff92SAndroid Build Coastguard Worker Symmetric = 2 678*89c4ff92SAndroid Build Coastguard Worker} 679*89c4ff92SAndroid Build Coastguard Worker 680*89c4ff92SAndroid Build Coastguard Workertable PadDescriptor { 681*89c4ff92SAndroid Build Coastguard Worker padList:[uint]; 682*89c4ff92SAndroid Build Coastguard Worker padValue:float = 0; 683*89c4ff92SAndroid Build Coastguard Worker paddingMode:PaddingMode = Constant; 684*89c4ff92SAndroid Build Coastguard Worker} 685*89c4ff92SAndroid Build Coastguard Worker 686*89c4ff92SAndroid Build Coastguard Worker/// @deprecated Use ElementwiseUnaryLayer instead 687*89c4ff92SAndroid Build Coastguard Workertable RsqrtLayer { 688*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 689*89c4ff92SAndroid Build Coastguard Worker} 690*89c4ff92SAndroid Build Coastguard Worker 691*89c4ff92SAndroid Build Coastguard Workertable BatchNormalizationLayer { 692*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 693*89c4ff92SAndroid Build Coastguard Worker descriptor:BatchNormalizationDescriptor; 694*89c4ff92SAndroid Build Coastguard Worker mean:ConstTensor; 695*89c4ff92SAndroid Build Coastguard Worker variance:ConstTensor; 696*89c4ff92SAndroid Build Coastguard Worker beta:ConstTensor; 697*89c4ff92SAndroid Build Coastguard Worker gamma:ConstTensor; 698*89c4ff92SAndroid Build Coastguard Worker} 699*89c4ff92SAndroid Build Coastguard Worker 700*89c4ff92SAndroid Build Coastguard Workertable BatchNormalizationDescriptor { 701*89c4ff92SAndroid Build Coastguard Worker eps:float; 702*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 703*89c4ff92SAndroid Build Coastguard Worker} 704*89c4ff92SAndroid Build Coastguard Worker 705*89c4ff92SAndroid Build Coastguard Worker/// @deprecated Use ResizeLayer instead 706*89c4ff92SAndroid Build Coastguard Workertable ResizeBilinearLayer { 707*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 708*89c4ff92SAndroid Build Coastguard Worker descriptor:ResizeBilinearDescriptor; 709*89c4ff92SAndroid Build Coastguard Worker} 710*89c4ff92SAndroid Build Coastguard Worker 711*89c4ff92SAndroid Build Coastguard Workertable ResizeBilinearDescriptor { 712*89c4ff92SAndroid Build Coastguard Worker targetWidth:uint; 713*89c4ff92SAndroid Build Coastguard Worker targetHeight:uint; 714*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 715*89c4ff92SAndroid Build Coastguard Worker alignCorners:bool; 716*89c4ff92SAndroid Build Coastguard Worker halfPixelCenters:bool; 717*89c4ff92SAndroid Build Coastguard Worker} 718*89c4ff92SAndroid Build Coastguard Worker 719*89c4ff92SAndroid Build Coastguard Workertable SliceLayer { 720*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 721*89c4ff92SAndroid Build Coastguard Worker descriptor:SliceDescriptor; 722*89c4ff92SAndroid Build Coastguard Worker} 723*89c4ff92SAndroid Build Coastguard Worker 724*89c4ff92SAndroid Build Coastguard Workertable SliceDescriptor { 725*89c4ff92SAndroid Build Coastguard Worker begin:[uint]; 726*89c4ff92SAndroid Build Coastguard Worker size:[uint]; 727*89c4ff92SAndroid Build Coastguard Worker} 728*89c4ff92SAndroid Build Coastguard Worker 729*89c4ff92SAndroid Build Coastguard Workertable StridedSliceLayer { 730*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 731*89c4ff92SAndroid Build Coastguard Worker descriptor:StridedSliceDescriptor; 732*89c4ff92SAndroid Build Coastguard Worker} 733*89c4ff92SAndroid Build Coastguard Worker 734*89c4ff92SAndroid Build Coastguard Workertable StridedSliceDescriptor { 735*89c4ff92SAndroid Build Coastguard Worker begin:[int]; 736*89c4ff92SAndroid Build Coastguard Worker end:[int]; 737*89c4ff92SAndroid Build Coastguard Worker stride:[int]; 738*89c4ff92SAndroid Build Coastguard Worker beginMask:int; 739*89c4ff92SAndroid Build Coastguard Worker endMask:int; 740*89c4ff92SAndroid Build Coastguard Worker shrinkAxisMask:int; 741*89c4ff92SAndroid Build Coastguard Worker ellipsisMask:int; 742*89c4ff92SAndroid Build Coastguard Worker newAxisMask:int; 743*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 744*89c4ff92SAndroid Build Coastguard Worker} 745*89c4ff92SAndroid Build Coastguard Worker 746*89c4ff92SAndroid Build Coastguard Workertable ConcatLayer { 747*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 748*89c4ff92SAndroid Build Coastguard Worker descriptor:OriginsDescriptor; 749*89c4ff92SAndroid Build Coastguard Worker} 750*89c4ff92SAndroid Build Coastguard Worker 751*89c4ff92SAndroid Build Coastguard Worker/// @deprecated Use ConcatLayer instead 752*89c4ff92SAndroid Build Coastguard Workertable MergerLayer { 753*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 754*89c4ff92SAndroid Build Coastguard Worker descriptor:OriginsDescriptor; 755*89c4ff92SAndroid Build Coastguard Worker} 756*89c4ff92SAndroid Build Coastguard Worker 757*89c4ff92SAndroid Build Coastguard Workertable UintVector { 758*89c4ff92SAndroid Build Coastguard Worker data:[uint]; 759*89c4ff92SAndroid Build Coastguard Worker} 760*89c4ff92SAndroid Build Coastguard Worker 761*89c4ff92SAndroid Build Coastguard Workertable OriginsDescriptor { 762*89c4ff92SAndroid Build Coastguard Worker concatAxis:uint; 763*89c4ff92SAndroid Build Coastguard Worker numViews:uint; 764*89c4ff92SAndroid Build Coastguard Worker numDimensions:uint; 765*89c4ff92SAndroid Build Coastguard Worker viewOrigins:[UintVector]; 766*89c4ff92SAndroid Build Coastguard Worker} 767*89c4ff92SAndroid Build Coastguard Worker 768*89c4ff92SAndroid Build Coastguard Workertable ViewsDescriptor { 769*89c4ff92SAndroid Build Coastguard Worker origins:OriginsDescriptor; 770*89c4ff92SAndroid Build Coastguard Worker viewSizes:[UintVector]; 771*89c4ff92SAndroid Build Coastguard Worker} 772*89c4ff92SAndroid Build Coastguard Worker 773*89c4ff92SAndroid Build Coastguard Workertable SplitterLayer { 774*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 775*89c4ff92SAndroid Build Coastguard Worker descriptor:ViewsDescriptor; 776*89c4ff92SAndroid Build Coastguard Worker} 777*89c4ff92SAndroid Build Coastguard Worker 778*89c4ff92SAndroid Build Coastguard Workertable DetectionPostProcessLayer { 779*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 780*89c4ff92SAndroid Build Coastguard Worker descriptor:DetectionPostProcessDescriptor; 781*89c4ff92SAndroid Build Coastguard Worker anchors:ConstTensor; 782*89c4ff92SAndroid Build Coastguard Worker} 783*89c4ff92SAndroid Build Coastguard Worker 784*89c4ff92SAndroid Build Coastguard Workertable DetectionPostProcessDescriptor { 785*89c4ff92SAndroid Build Coastguard Worker maxDetections:uint; 786*89c4ff92SAndroid Build Coastguard Worker maxClassesPerDetection:uint; 787*89c4ff92SAndroid Build Coastguard Worker detectionsPerClass:uint; 788*89c4ff92SAndroid Build Coastguard Worker nmsScoreThreshold:float; 789*89c4ff92SAndroid Build Coastguard Worker nmsIouThreshold:float; 790*89c4ff92SAndroid Build Coastguard Worker numClasses:uint; 791*89c4ff92SAndroid Build Coastguard Worker useRegularNms:bool; 792*89c4ff92SAndroid Build Coastguard Worker scaleX:float; 793*89c4ff92SAndroid Build Coastguard Worker scaleY:float; 794*89c4ff92SAndroid Build Coastguard Worker scaleW:float; 795*89c4ff92SAndroid Build Coastguard Worker scaleH:float; 796*89c4ff92SAndroid Build Coastguard Worker} 797*89c4ff92SAndroid Build Coastguard Worker 798*89c4ff92SAndroid Build Coastguard Workertable LstmInputParams { 799*89c4ff92SAndroid Build Coastguard Worker inputToForgetWeights:ConstTensor; 800*89c4ff92SAndroid Build Coastguard Worker inputToCellWeights:ConstTensor; 801*89c4ff92SAndroid Build Coastguard Worker inputToOutputWeights:ConstTensor; 802*89c4ff92SAndroid Build Coastguard Worker recurrentToForgetWeights:ConstTensor; 803*89c4ff92SAndroid Build Coastguard Worker recurrentToCellWeights:ConstTensor; 804*89c4ff92SAndroid Build Coastguard Worker recurrentToOutputWeights:ConstTensor; 805*89c4ff92SAndroid Build Coastguard Worker forgetGateBias:ConstTensor; 806*89c4ff92SAndroid Build Coastguard Worker cellBias:ConstTensor; 807*89c4ff92SAndroid Build Coastguard Worker outputGateBias:ConstTensor; 808*89c4ff92SAndroid Build Coastguard Worker 809*89c4ff92SAndroid Build Coastguard Worker inputToInputWeights:ConstTensor; 810*89c4ff92SAndroid Build Coastguard Worker recurrentToInputWeights:ConstTensor; 811*89c4ff92SAndroid Build Coastguard Worker cellToInputWeights:ConstTensor; 812*89c4ff92SAndroid Build Coastguard Worker inputGateBias:ConstTensor; 813*89c4ff92SAndroid Build Coastguard Worker 814*89c4ff92SAndroid Build Coastguard Worker projectionWeights:ConstTensor; 815*89c4ff92SAndroid Build Coastguard Worker projectionBias:ConstTensor; 816*89c4ff92SAndroid Build Coastguard Worker 817*89c4ff92SAndroid Build Coastguard Worker cellToForgetWeights:ConstTensor; 818*89c4ff92SAndroid Build Coastguard Worker cellToOutputWeights:ConstTensor; 819*89c4ff92SAndroid Build Coastguard Worker 820*89c4ff92SAndroid Build Coastguard Worker inputLayerNormWeights:ConstTensor; 821*89c4ff92SAndroid Build Coastguard Worker forgetLayerNormWeights:ConstTensor; 822*89c4ff92SAndroid Build Coastguard Worker cellLayerNormWeights:ConstTensor; 823*89c4ff92SAndroid Build Coastguard Worker outputLayerNormWeights:ConstTensor; 824*89c4ff92SAndroid Build Coastguard Worker} 825*89c4ff92SAndroid Build Coastguard Worker 826*89c4ff92SAndroid Build Coastguard Workertable LstmDescriptor { 827*89c4ff92SAndroid Build Coastguard Worker activationFunc:uint; 828*89c4ff92SAndroid Build Coastguard Worker clippingThresCell:float; 829*89c4ff92SAndroid Build Coastguard Worker clippingThresProj:float; 830*89c4ff92SAndroid Build Coastguard Worker cifgEnabled:bool = true; 831*89c4ff92SAndroid Build Coastguard Worker peepholeEnabled:bool = false; 832*89c4ff92SAndroid Build Coastguard Worker projectionEnabled:bool = false; 833*89c4ff92SAndroid Build Coastguard Worker layerNormEnabled:bool = false; 834*89c4ff92SAndroid Build Coastguard Worker} 835*89c4ff92SAndroid Build Coastguard Worker 836*89c4ff92SAndroid Build Coastguard Workertable LstmLayer { 837*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 838*89c4ff92SAndroid Build Coastguard Worker descriptor:LstmDescriptor; 839*89c4ff92SAndroid Build Coastguard Worker inputParams:LstmInputParams; 840*89c4ff92SAndroid Build Coastguard Worker} 841*89c4ff92SAndroid Build Coastguard Worker 842*89c4ff92SAndroid Build Coastguard Workertable QLstmInputParams { 843*89c4ff92SAndroid Build Coastguard Worker // Mandatory 844*89c4ff92SAndroid Build Coastguard Worker inputToForgetWeights:ConstTensor; 845*89c4ff92SAndroid Build Coastguard Worker inputToCellWeights:ConstTensor; 846*89c4ff92SAndroid Build Coastguard Worker inputToOutputWeights:ConstTensor; 847*89c4ff92SAndroid Build Coastguard Worker 848*89c4ff92SAndroid Build Coastguard Worker recurrentToForgetWeights:ConstTensor; 849*89c4ff92SAndroid Build Coastguard Worker recurrentToCellWeights:ConstTensor; 850*89c4ff92SAndroid Build Coastguard Worker recurrentToOutputWeights:ConstTensor; 851*89c4ff92SAndroid Build Coastguard Worker 852*89c4ff92SAndroid Build Coastguard Worker forgetGateBias:ConstTensor; 853*89c4ff92SAndroid Build Coastguard Worker cellBias:ConstTensor; 854*89c4ff92SAndroid Build Coastguard Worker outputGateBias:ConstTensor; 855*89c4ff92SAndroid Build Coastguard Worker 856*89c4ff92SAndroid Build Coastguard Worker // CIFG 857*89c4ff92SAndroid Build Coastguard Worker inputToInputWeights:ConstTensor; 858*89c4ff92SAndroid Build Coastguard Worker recurrentToInputWeights:ConstTensor; 859*89c4ff92SAndroid Build Coastguard Worker inputGateBias:ConstTensor; 860*89c4ff92SAndroid Build Coastguard Worker 861*89c4ff92SAndroid Build Coastguard Worker // Projection 862*89c4ff92SAndroid Build Coastguard Worker projectionWeights:ConstTensor; 863*89c4ff92SAndroid Build Coastguard Worker projectionBias:ConstTensor; 864*89c4ff92SAndroid Build Coastguard Worker 865*89c4ff92SAndroid Build Coastguard Worker // Peephole 866*89c4ff92SAndroid Build Coastguard Worker cellToInputWeights:ConstTensor; 867*89c4ff92SAndroid Build Coastguard Worker cellToForgetWeights:ConstTensor; 868*89c4ff92SAndroid Build Coastguard Worker cellToOutputWeights:ConstTensor; 869*89c4ff92SAndroid Build Coastguard Worker 870*89c4ff92SAndroid Build Coastguard Worker // Layer norm 871*89c4ff92SAndroid Build Coastguard Worker inputLayerNormWeights:ConstTensor; 872*89c4ff92SAndroid Build Coastguard Worker forgetLayerNormWeights:ConstTensor; 873*89c4ff92SAndroid Build Coastguard Worker cellLayerNormWeights:ConstTensor; 874*89c4ff92SAndroid Build Coastguard Worker outputLayerNormWeights:ConstTensor; 875*89c4ff92SAndroid Build Coastguard Worker} 876*89c4ff92SAndroid Build Coastguard Worker 877*89c4ff92SAndroid Build Coastguard Workertable QLstmDescriptor { 878*89c4ff92SAndroid Build Coastguard Worker cifgEnabled:bool = true; 879*89c4ff92SAndroid Build Coastguard Worker peepholeEnabled:bool = false; 880*89c4ff92SAndroid Build Coastguard Worker projectionEnabled:bool = false; 881*89c4ff92SAndroid Build Coastguard Worker layerNormEnabled:bool = false; 882*89c4ff92SAndroid Build Coastguard Worker 883*89c4ff92SAndroid Build Coastguard Worker cellClip:float; 884*89c4ff92SAndroid Build Coastguard Worker projectionClip:float; 885*89c4ff92SAndroid Build Coastguard Worker 886*89c4ff92SAndroid Build Coastguard Worker inputIntermediateScale:float; 887*89c4ff92SAndroid Build Coastguard Worker forgetIntermediateScale:float; 888*89c4ff92SAndroid Build Coastguard Worker cellIntermediateScale:float; 889*89c4ff92SAndroid Build Coastguard Worker outputIntermediateScale:float; 890*89c4ff92SAndroid Build Coastguard Worker 891*89c4ff92SAndroid Build Coastguard Worker hiddenStateZeroPoint:int; 892*89c4ff92SAndroid Build Coastguard Worker hiddenStateScale:float; 893*89c4ff92SAndroid Build Coastguard Worker} 894*89c4ff92SAndroid Build Coastguard Worker 895*89c4ff92SAndroid Build Coastguard Workertable QLstmLayer { 896*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 897*89c4ff92SAndroid Build Coastguard Worker descriptor:QLstmDescriptor; 898*89c4ff92SAndroid Build Coastguard Worker inputParams:QLstmInputParams; 899*89c4ff92SAndroid Build Coastguard Worker} 900*89c4ff92SAndroid Build Coastguard Worker 901*89c4ff92SAndroid Build Coastguard Workertable QuantizedLstmInputParams { 902*89c4ff92SAndroid Build Coastguard Worker inputToInputWeights:ConstTensor; 903*89c4ff92SAndroid Build Coastguard Worker inputToForgetWeights:ConstTensor; 904*89c4ff92SAndroid Build Coastguard Worker inputToCellWeights:ConstTensor; 905*89c4ff92SAndroid Build Coastguard Worker inputToOutputWeights:ConstTensor; 906*89c4ff92SAndroid Build Coastguard Worker 907*89c4ff92SAndroid Build Coastguard Worker recurrentToInputWeights:ConstTensor; 908*89c4ff92SAndroid Build Coastguard Worker recurrentToForgetWeights:ConstTensor; 909*89c4ff92SAndroid Build Coastguard Worker recurrentToCellWeights:ConstTensor; 910*89c4ff92SAndroid Build Coastguard Worker recurrentToOutputWeights:ConstTensor; 911*89c4ff92SAndroid Build Coastguard Worker 912*89c4ff92SAndroid Build Coastguard Worker inputGateBias:ConstTensor; 913*89c4ff92SAndroid Build Coastguard Worker forgetGateBias:ConstTensor; 914*89c4ff92SAndroid Build Coastguard Worker cellBias:ConstTensor; 915*89c4ff92SAndroid Build Coastguard Worker outputGateBias:ConstTensor; 916*89c4ff92SAndroid Build Coastguard Worker} 917*89c4ff92SAndroid Build Coastguard Worker 918*89c4ff92SAndroid Build Coastguard Workertable QuantizedLstmLayer { 919*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 920*89c4ff92SAndroid Build Coastguard Worker inputParams:QuantizedLstmInputParams; 921*89c4ff92SAndroid Build Coastguard Worker} 922*89c4ff92SAndroid Build Coastguard Worker 923*89c4ff92SAndroid Build Coastguard Workertable DequantizeLayer { 924*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 925*89c4ff92SAndroid Build Coastguard Worker} 926*89c4ff92SAndroid Build Coastguard Worker 927*89c4ff92SAndroid Build Coastguard Workertable MergeLayer { 928*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 929*89c4ff92SAndroid Build Coastguard Worker} 930*89c4ff92SAndroid Build Coastguard Worker 931*89c4ff92SAndroid Build Coastguard Workertable SwitchLayer { 932*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 933*89c4ff92SAndroid Build Coastguard Worker} 934*89c4ff92SAndroid Build Coastguard Worker 935*89c4ff92SAndroid Build Coastguard Workertable PreluLayer { 936*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 937*89c4ff92SAndroid Build Coastguard Worker} 938*89c4ff92SAndroid Build Coastguard Worker 939*89c4ff92SAndroid Build Coastguard Workertable TransposeConvolution2dLayer { 940*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 941*89c4ff92SAndroid Build Coastguard Worker descriptor:TransposeConvolution2dDescriptor; 942*89c4ff92SAndroid Build Coastguard Worker weights:ConstTensor; 943*89c4ff92SAndroid Build Coastguard Worker biases:ConstTensor; 944*89c4ff92SAndroid Build Coastguard Worker} 945*89c4ff92SAndroid Build Coastguard Worker 946*89c4ff92SAndroid Build Coastguard Workertable TransposeConvolution2dDescriptor { 947*89c4ff92SAndroid Build Coastguard Worker padLeft:uint; 948*89c4ff92SAndroid Build Coastguard Worker padRight:uint; 949*89c4ff92SAndroid Build Coastguard Worker padTop:uint; 950*89c4ff92SAndroid Build Coastguard Worker padBottom:uint; 951*89c4ff92SAndroid Build Coastguard Worker strideX:uint; 952*89c4ff92SAndroid Build Coastguard Worker strideY:uint; 953*89c4ff92SAndroid Build Coastguard Worker biasEnabled:bool = false; 954*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout = NCHW; 955*89c4ff92SAndroid Build Coastguard Worker} 956*89c4ff92SAndroid Build Coastguard Worker 957*89c4ff92SAndroid Build Coastguard Workertable TransposeLayer { 958*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 959*89c4ff92SAndroid Build Coastguard Worker descriptor:TransposeDescriptor; 960*89c4ff92SAndroid Build Coastguard Worker} 961*89c4ff92SAndroid Build Coastguard Worker 962*89c4ff92SAndroid Build Coastguard Workertable TransposeDescriptor { 963*89c4ff92SAndroid Build Coastguard Worker dimMappings:[uint]; 964*89c4ff92SAndroid Build Coastguard Worker} 965*89c4ff92SAndroid Build Coastguard Worker 966*89c4ff92SAndroid Build Coastguard Workertable ResizeLayer { 967*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 968*89c4ff92SAndroid Build Coastguard Worker descriptor:ResizeDescriptor; 969*89c4ff92SAndroid Build Coastguard Worker} 970*89c4ff92SAndroid Build Coastguard Worker 971*89c4ff92SAndroid Build Coastguard Workertable ResizeDescriptor { 972*89c4ff92SAndroid Build Coastguard Worker targetHeight:uint; 973*89c4ff92SAndroid Build Coastguard Worker targetWidth:uint; 974*89c4ff92SAndroid Build Coastguard Worker method:ResizeMethod = NearestNeighbor; 975*89c4ff92SAndroid Build Coastguard Worker dataLayout:DataLayout; 976*89c4ff92SAndroid Build Coastguard Worker alignCorners:bool; 977*89c4ff92SAndroid Build Coastguard Worker halfPixelCenters:bool; 978*89c4ff92SAndroid Build Coastguard Worker} 979*89c4ff92SAndroid Build Coastguard Worker 980*89c4ff92SAndroid Build Coastguard Workertable StackLayer { 981*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 982*89c4ff92SAndroid Build Coastguard Worker descriptor:StackDescriptor; 983*89c4ff92SAndroid Build Coastguard Worker} 984*89c4ff92SAndroid Build Coastguard Worker 985*89c4ff92SAndroid Build Coastguard Workertable StackDescriptor { 986*89c4ff92SAndroid Build Coastguard Worker axis:uint; 987*89c4ff92SAndroid Build Coastguard Worker numInputs:uint; 988*89c4ff92SAndroid Build Coastguard Worker inputShape:[uint]; 989*89c4ff92SAndroid Build Coastguard Worker} 990*89c4ff92SAndroid Build Coastguard Worker 991*89c4ff92SAndroid Build Coastguard Workertable StandInDescriptor { 992*89c4ff92SAndroid Build Coastguard Worker numInputs:uint; 993*89c4ff92SAndroid Build Coastguard Worker numOutputs:uint; 994*89c4ff92SAndroid Build Coastguard Worker} 995*89c4ff92SAndroid Build Coastguard Worker 996*89c4ff92SAndroid Build Coastguard Workertable StandInLayer { 997*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 998*89c4ff92SAndroid Build Coastguard Worker descriptor:StandInDescriptor; 999*89c4ff92SAndroid Build Coastguard Worker} 1000*89c4ff92SAndroid Build Coastguard Worker 1001*89c4ff92SAndroid Build Coastguard Workertable RankLayer { 1002*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 1003*89c4ff92SAndroid Build Coastguard Worker} 1004*89c4ff92SAndroid Build Coastguard Worker 1005*89c4ff92SAndroid Build Coastguard Workertable ReduceLayer { 1006*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 1007*89c4ff92SAndroid Build Coastguard Worker descriptor:ReduceDescriptor; 1008*89c4ff92SAndroid Build Coastguard Worker} 1009*89c4ff92SAndroid Build Coastguard Worker 1010*89c4ff92SAndroid Build Coastguard Workertable ReduceDescriptor { 1011*89c4ff92SAndroid Build Coastguard Worker keepDims:bool = false; 1012*89c4ff92SAndroid Build Coastguard Worker axis:[uint]; 1013*89c4ff92SAndroid Build Coastguard Worker reduceOperation:ReduceOperation = Sum; 1014*89c4ff92SAndroid Build Coastguard Worker} 1015*89c4ff92SAndroid Build Coastguard Worker 1016*89c4ff92SAndroid Build Coastguard Workertable UnidirectionalSequenceLstmDescriptor { 1017*89c4ff92SAndroid Build Coastguard Worker activationFunc:uint; 1018*89c4ff92SAndroid Build Coastguard Worker clippingThresCell:float; 1019*89c4ff92SAndroid Build Coastguard Worker clippingThresProj:float; 1020*89c4ff92SAndroid Build Coastguard Worker cifgEnabled:bool = true; 1021*89c4ff92SAndroid Build Coastguard Worker peepholeEnabled:bool = false; 1022*89c4ff92SAndroid Build Coastguard Worker projectionEnabled:bool = false; 1023*89c4ff92SAndroid Build Coastguard Worker layerNormEnabled:bool = false; 1024*89c4ff92SAndroid Build Coastguard Worker timeMajor:bool = false; 1025*89c4ff92SAndroid Build Coastguard Worker} 1026*89c4ff92SAndroid Build Coastguard Worker 1027*89c4ff92SAndroid Build Coastguard Workertable UnidirectionalSequenceLstmLayer { 1028*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 1029*89c4ff92SAndroid Build Coastguard Worker descriptor:UnidirectionalSequenceLstmDescriptor; 1030*89c4ff92SAndroid Build Coastguard Worker inputParams:LstmInputParams; 1031*89c4ff92SAndroid Build Coastguard Worker} 1032*89c4ff92SAndroid Build Coastguard Worker 1033*89c4ff92SAndroid Build Coastguard Workertable BatchMatMulDescriptor { 1034*89c4ff92SAndroid Build Coastguard Worker transposeX:bool = false; 1035*89c4ff92SAndroid Build Coastguard Worker transposeY:bool = false; 1036*89c4ff92SAndroid Build Coastguard Worker adjointX:bool = false; 1037*89c4ff92SAndroid Build Coastguard Worker adjointY:bool = false; 1038*89c4ff92SAndroid Build Coastguard Worker dataLayoutX:DataLayout = NCHW; 1039*89c4ff92SAndroid Build Coastguard Worker dataLayoutY:DataLayout = NCHW; 1040*89c4ff92SAndroid Build Coastguard Worker} 1041*89c4ff92SAndroid Build Coastguard Worker 1042*89c4ff92SAndroid Build Coastguard Workertable BatchMatMulLayer { 1043*89c4ff92SAndroid Build Coastguard Worker base:LayerBase; 1044*89c4ff92SAndroid Build Coastguard Worker descriptor:BatchMatMulDescriptor; 1045*89c4ff92SAndroid Build Coastguard Worker} 1046*89c4ff92SAndroid Build Coastguard Worker 1047*89c4ff92SAndroid Build Coastguard Workerunion Layer { 1048*89c4ff92SAndroid Build Coastguard Worker ActivationLayer, 1049*89c4ff92SAndroid Build Coastguard Worker AdditionLayer, 1050*89c4ff92SAndroid Build Coastguard Worker BatchToSpaceNdLayer, 1051*89c4ff92SAndroid Build Coastguard Worker BatchNormalizationLayer, 1052*89c4ff92SAndroid Build Coastguard Worker ConstantLayer, 1053*89c4ff92SAndroid Build Coastguard Worker Convolution2dLayer, 1054*89c4ff92SAndroid Build Coastguard Worker DepthwiseConvolution2dLayer, 1055*89c4ff92SAndroid Build Coastguard Worker FullyConnectedLayer, 1056*89c4ff92SAndroid Build Coastguard Worker InputLayer, 1057*89c4ff92SAndroid Build Coastguard Worker MultiplicationLayer, 1058*89c4ff92SAndroid Build Coastguard Worker OutputLayer, 1059*89c4ff92SAndroid Build Coastguard Worker PermuteLayer, 1060*89c4ff92SAndroid Build Coastguard Worker Pooling2dLayer, 1061*89c4ff92SAndroid Build Coastguard Worker ReshapeLayer, 1062*89c4ff92SAndroid Build Coastguard Worker SoftmaxLayer, 1063*89c4ff92SAndroid Build Coastguard Worker SpaceToBatchNdLayer, 1064*89c4ff92SAndroid Build Coastguard Worker DivisionLayer, 1065*89c4ff92SAndroid Build Coastguard Worker MinimumLayer, 1066*89c4ff92SAndroid Build Coastguard Worker EqualLayer, 1067*89c4ff92SAndroid Build Coastguard Worker MaximumLayer, 1068*89c4ff92SAndroid Build Coastguard Worker NormalizationLayer, 1069*89c4ff92SAndroid Build Coastguard Worker PadLayer, 1070*89c4ff92SAndroid Build Coastguard Worker RsqrtLayer, 1071*89c4ff92SAndroid Build Coastguard Worker FloorLayer, 1072*89c4ff92SAndroid Build Coastguard Worker GreaterLayer, 1073*89c4ff92SAndroid Build Coastguard Worker ResizeBilinearLayer, 1074*89c4ff92SAndroid Build Coastguard Worker SubtractionLayer, 1075*89c4ff92SAndroid Build Coastguard Worker StridedSliceLayer, 1076*89c4ff92SAndroid Build Coastguard Worker GatherLayer, 1077*89c4ff92SAndroid Build Coastguard Worker MeanLayer, 1078*89c4ff92SAndroid Build Coastguard Worker MergerLayer, 1079*89c4ff92SAndroid Build Coastguard Worker L2NormalizationLayer, 1080*89c4ff92SAndroid Build Coastguard Worker SplitterLayer, 1081*89c4ff92SAndroid Build Coastguard Worker DetectionPostProcessLayer, 1082*89c4ff92SAndroid Build Coastguard Worker LstmLayer, 1083*89c4ff92SAndroid Build Coastguard Worker QuantizedLstmLayer, 1084*89c4ff92SAndroid Build Coastguard Worker QuantizeLayer, 1085*89c4ff92SAndroid Build Coastguard Worker DequantizeLayer, 1086*89c4ff92SAndroid Build Coastguard Worker MergeLayer, 1087*89c4ff92SAndroid Build Coastguard Worker SwitchLayer, 1088*89c4ff92SAndroid Build Coastguard Worker ConcatLayer, 1089*89c4ff92SAndroid Build Coastguard Worker SpaceToDepthLayer, 1090*89c4ff92SAndroid Build Coastguard Worker PreluLayer, 1091*89c4ff92SAndroid Build Coastguard Worker TransposeConvolution2dLayer, 1092*89c4ff92SAndroid Build Coastguard Worker ResizeLayer, 1093*89c4ff92SAndroid Build Coastguard Worker StackLayer, 1094*89c4ff92SAndroid Build Coastguard Worker AbsLayer, 1095*89c4ff92SAndroid Build Coastguard Worker ArgMinMaxLayer, 1096*89c4ff92SAndroid Build Coastguard Worker SliceLayer, 1097*89c4ff92SAndroid Build Coastguard Worker DepthToSpaceLayer, 1098*89c4ff92SAndroid Build Coastguard Worker InstanceNormalizationLayer, 1099*89c4ff92SAndroid Build Coastguard Worker LogSoftmaxLayer, 1100*89c4ff92SAndroid Build Coastguard Worker ComparisonLayer, 1101*89c4ff92SAndroid Build Coastguard Worker StandInLayer, 1102*89c4ff92SAndroid Build Coastguard Worker ElementwiseUnaryLayer, 1103*89c4ff92SAndroid Build Coastguard Worker TransposeLayer, 1104*89c4ff92SAndroid Build Coastguard Worker QLstmLayer, 1105*89c4ff92SAndroid Build Coastguard Worker FillLayer, 1106*89c4ff92SAndroid Build Coastguard Worker RankLayer, 1107*89c4ff92SAndroid Build Coastguard Worker LogicalBinaryLayer, 1108*89c4ff92SAndroid Build Coastguard Worker ReduceLayer, 1109*89c4ff92SAndroid Build Coastguard Worker CastLayer, 1110*89c4ff92SAndroid Build Coastguard Worker ShapeLayer, 1111*89c4ff92SAndroid Build Coastguard Worker UnidirectionalSequenceLstmLayer, 1112*89c4ff92SAndroid Build Coastguard Worker ChannelShuffleLayer, 1113*89c4ff92SAndroid Build Coastguard Worker Convolution3dLayer, 1114*89c4ff92SAndroid Build Coastguard Worker Pooling3dLayer, 1115*89c4ff92SAndroid Build Coastguard Worker GatherNdLayer, 1116*89c4ff92SAndroid Build Coastguard Worker BatchMatMulLayer, 1117*89c4ff92SAndroid Build Coastguard Worker ElementwiseBinaryLayer, 1118*89c4ff92SAndroid Build Coastguard Worker} 1119*89c4ff92SAndroid Build Coastguard Worker 1120*89c4ff92SAndroid Build Coastguard Workertable AnyLayer { 1121*89c4ff92SAndroid Build Coastguard Worker layer:Layer; 1122*89c4ff92SAndroid Build Coastguard Worker} 1123*89c4ff92SAndroid Build Coastguard Worker 1124*89c4ff92SAndroid Build Coastguard Workertable FeatureCompatibilityVersions { 1125*89c4ff92SAndroid Build Coastguard Worker bindingIdsScheme:uint = 0; 1126*89c4ff92SAndroid Build Coastguard Worker weightsLayoutScheme:uint = 0; 1127*89c4ff92SAndroid Build Coastguard Worker constantTensorsAsInputs:uint = 0; 1128*89c4ff92SAndroid Build Coastguard Worker} 1129*89c4ff92SAndroid Build Coastguard Worker 1130*89c4ff92SAndroid Build Coastguard Worker// Root type for serialized data is the graph of the network 1131*89c4ff92SAndroid Build Coastguard Workertable SerializedGraph { 1132*89c4ff92SAndroid Build Coastguard Worker layers:[AnyLayer]; 1133*89c4ff92SAndroid Build Coastguard Worker inputIds:[int]; 1134*89c4ff92SAndroid Build Coastguard Worker outputIds:[int]; 1135*89c4ff92SAndroid Build Coastguard Worker featureVersions:FeatureCompatibilityVersions; 1136*89c4ff92SAndroid Build Coastguard Worker} 1137*89c4ff92SAndroid Build Coastguard Worker 1138*89c4ff92SAndroid Build Coastguard Workerroot_type SerializedGraph; 1139