1*61046927SAndroid Build Coastguard Worker// Copyright 2017 The TensorFlow Authors. All Rights Reserved. 2*61046927SAndroid Build Coastguard Worker// 3*61046927SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*61046927SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*61046927SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*61046927SAndroid Build Coastguard Worker// 7*61046927SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*61046927SAndroid Build Coastguard Worker// 9*61046927SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*61046927SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*61046927SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*61046927SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*61046927SAndroid Build Coastguard Worker// limitations under the License. 14*61046927SAndroid Build Coastguard Worker 15*61046927SAndroid Build Coastguard Worker// Revision History 16*61046927SAndroid Build Coastguard Worker// Version 0: Initial version. 17*61046927SAndroid Build Coastguard Worker// Version 1: Add subgraphs to schema. 18*61046927SAndroid Build Coastguard Worker// Version 2: Rename operators to conform to NN API. 19*61046927SAndroid Build Coastguard Worker// Version 3: Move buffer data from Model.Subgraph.Tensors to Model.Buffers. 20*61046927SAndroid Build Coastguard Worker// Version 3a: Add new builtin op code field. Has backward compatibility with 21*61046927SAndroid Build Coastguard Worker// version 3. 22*61046927SAndroid Build Coastguard Worker// Version 3b: Rename fields in SignatureDef. Has backward compatibility with 23*61046927SAndroid Build Coastguard Worker// version 3 and 3a. 24*61046927SAndroid Build Coastguard Worker// Version 3c: Move constant tensor buffers & custom op buffers outside from 25*61046927SAndroid Build Coastguard Worker// Flatbuffers. Has backward compatibility with version 3, 3a and 26*61046927SAndroid Build Coastguard Worker// 3b. 27*61046927SAndroid Build Coastguard Worker 28*61046927SAndroid Build Coastguard Workernamespace tflite; 29*61046927SAndroid Build Coastguard Worker 30*61046927SAndroid Build Coastguard Worker// This corresponds to the version. 31*61046927SAndroid Build Coastguard Workerfile_identifier "TFL3"; 32*61046927SAndroid Build Coastguard Worker// File extension of any written files. 33*61046927SAndroid Build Coastguard Workerfile_extension "tflite"; 34*61046927SAndroid Build Coastguard Worker 35*61046927SAndroid Build Coastguard Worker// IMPORTANT: All new members of tables, enums and unions must be added at the 36*61046927SAndroid Build Coastguard Worker// end to ensure backwards compatibility. 37*61046927SAndroid Build Coastguard Worker 38*61046927SAndroid Build Coastguard Worker// The type of data stored in a tensor. 39*61046927SAndroid Build Coastguard Workerenum TensorType : byte { 40*61046927SAndroid Build Coastguard Worker FLOAT32 = 0, 41*61046927SAndroid Build Coastguard Worker FLOAT16 = 1, 42*61046927SAndroid Build Coastguard Worker INT32 = 2, 43*61046927SAndroid Build Coastguard Worker UINT8 = 3, 44*61046927SAndroid Build Coastguard Worker INT64 = 4, 45*61046927SAndroid Build Coastguard Worker STRING = 5, 46*61046927SAndroid Build Coastguard Worker BOOL = 6, 47*61046927SAndroid Build Coastguard Worker INT16 = 7, 48*61046927SAndroid Build Coastguard Worker COMPLEX64 = 8, 49*61046927SAndroid Build Coastguard Worker INT8 = 9, 50*61046927SAndroid Build Coastguard Worker FLOAT64 = 10, 51*61046927SAndroid Build Coastguard Worker COMPLEX128 = 11, 52*61046927SAndroid Build Coastguard Worker UINT64 = 12, 53*61046927SAndroid Build Coastguard Worker // Experimental: Resource and variant types are experimental, that are subject 54*61046927SAndroid Build Coastguard Worker // to change. Do not implement custom kernels using resource & variant types 55*61046927SAndroid Build Coastguard Worker // now. 56*61046927SAndroid Build Coastguard Worker RESOURCE = 13, 57*61046927SAndroid Build Coastguard Worker VARIANT = 14, 58*61046927SAndroid Build Coastguard Worker UINT32 = 15, 59*61046927SAndroid Build Coastguard Worker UINT16 = 16, 60*61046927SAndroid Build Coastguard Worker INT4 = 17, 61*61046927SAndroid Build Coastguard Worker} 62*61046927SAndroid Build Coastguard Worker 63*61046927SAndroid Build Coastguard Worker// Custom quantization parameters for experimenting with new quantization 64*61046927SAndroid Build Coastguard Worker// techniques. 65*61046927SAndroid Build Coastguard Workertable CustomQuantization { 66*61046927SAndroid Build Coastguard Worker custom:[ubyte] (force_align: 16); 67*61046927SAndroid Build Coastguard Worker} 68*61046927SAndroid Build Coastguard Worker 69*61046927SAndroid Build Coastguard Worker// Represents a specific quantization technique's parameters. 70*61046927SAndroid Build Coastguard Workerunion QuantizationDetails { 71*61046927SAndroid Build Coastguard Worker CustomQuantization, 72*61046927SAndroid Build Coastguard Worker} 73*61046927SAndroid Build Coastguard Worker 74*61046927SAndroid Build Coastguard Worker// Parameters for converting a quantized tensor back to float. 75*61046927SAndroid Build Coastguard Workertable QuantizationParameters { 76*61046927SAndroid Build Coastguard Worker // These four parameters are the asymmetric linear quantization parameters. 77*61046927SAndroid Build Coastguard Worker // Given a quantized value q, the corresponding float value f should be: 78*61046927SAndroid Build Coastguard Worker // f = scale * (q - zero_point) 79*61046927SAndroid Build Coastguard Worker // For other quantization types, the QuantizationDetails below is used. 80*61046927SAndroid Build Coastguard Worker min:[float]; // For importing back into tensorflow. 81*61046927SAndroid Build Coastguard Worker max:[float]; // For importing back into tensorflow. 82*61046927SAndroid Build Coastguard Worker scale:[float]; // For dequantizing the tensor's values. 83*61046927SAndroid Build Coastguard Worker zero_point:[long]; 84*61046927SAndroid Build Coastguard Worker 85*61046927SAndroid Build Coastguard Worker // If this is not none, the other quantization parameters (i.e. min, max, 86*61046927SAndroid Build Coastguard Worker // scale, zero_point fields above) are ignored and the value of the 87*61046927SAndroid Build Coastguard Worker // QuantizationDetails union should be used. 88*61046927SAndroid Build Coastguard Worker details:QuantizationDetails; 89*61046927SAndroid Build Coastguard Worker 90*61046927SAndroid Build Coastguard Worker // Specifies the dimension of the Tensor's shape that the scales and 91*61046927SAndroid Build Coastguard Worker // zero_points correspond to. For example, a tensor t, with dims=[4, 3, 2, 1] 92*61046927SAndroid Build Coastguard Worker // with quantization params: 93*61046927SAndroid Build Coastguard Worker // scale=[1.0, 2.0, 3.0], zero_point=[1, 2, 3], quantization_dimension=1 94*61046927SAndroid Build Coastguard Worker // will be quantized across the second dimension of t. 95*61046927SAndroid Build Coastguard Worker // t[:, 0, :, :] will have scale[0]=1.0, zero_point[0]=1 96*61046927SAndroid Build Coastguard Worker // t[:, 1, :, :] will have scale[1]=2.0, zero_point[0]=2 97*61046927SAndroid Build Coastguard Worker // t[:, 2, :, :] will have scale[2]=3.0, zero_point[0]=3 98*61046927SAndroid Build Coastguard Worker quantized_dimension:int; 99*61046927SAndroid Build Coastguard Worker} 100*61046927SAndroid Build Coastguard Worker 101*61046927SAndroid Build Coastguard Worker// Sparse tensors. 102*61046927SAndroid Build Coastguard Worker// We use a modification of the TACO format. 103*61046927SAndroid Build Coastguard Worker// Reference: http://tensor-compiler.org/kjolstad-oopsla17-tensor-compiler.pdf 104*61046927SAndroid Build Coastguard Worker// 105*61046927SAndroid Build Coastguard Worker// To encode a conceptual n-dimensional dense tensor with dims (d0, ..., dn-1), 106*61046927SAndroid Build Coastguard Worker// potentially with a k-dimensional block (0 <= k <= n) with dims 107*61046927SAndroid Build Coastguard Worker// (dn, ..., dn+k-1), the format needs to specify: 108*61046927SAndroid Build Coastguard Worker// 1. In what order to traverse these dimensions. For example, to store a 2-D 109*61046927SAndroid Build Coastguard Worker// matrix in row major order, the traversal order would be (d0, d1), 110*61046927SAndroid Build Coastguard Worker// whereas to store it in column major order, the traversal order would be 111*61046927SAndroid Build Coastguard Worker// (d1, d0). If the 2-D matrix has a 2-D inner block, the traversal order 112*61046927SAndroid Build Coastguard Worker// could be (d0, d1, d2, d3). 113*61046927SAndroid Build Coastguard Worker// 2. How each block dimension in (dn, ..., dn+k-1) maps to the original 114*61046927SAndroid Build Coastguard Worker// tensor dimension in (d0, ..., dn-1). 115*61046927SAndroid Build Coastguard Worker// 3. In the traversal order defined above, the format (dense vs. sparse) and 116*61046927SAndroid Build Coastguard Worker// index metadata for each dimension. For a dense dimension, this is just 117*61046927SAndroid Build Coastguard Worker// the size of that dimension. For a sparse dimension, it's the same as 118*61046927SAndroid Build Coastguard Worker// the compressed index defined in the Compressed Sparse Row (CSR) format. 119*61046927SAndroid Build Coastguard Worker// (http://scipy-lectures.org/advanced/scipy_sparse/csr_matrix.html) 120*61046927SAndroid Build Coastguard Worker 121*61046927SAndroid Build Coastguard Worker// The storage type for a dimension. Currently we support: 122*61046927SAndroid Build Coastguard Worker// 1. DENSE: each coordinate in this dimension is stored implicitly. 123*61046927SAndroid Build Coastguard Worker// 2. SPARSE_CSR: only the coordinates with non-zero elements are stored. The 124*61046927SAndroid Build Coastguard Worker// compression technique is the same what CSR uses. 125*61046927SAndroid Build Coastguard Worker// More types like a sparse dimension with a different compression technique 126*61046927SAndroid Build Coastguard Worker// could be added to the list in the future. 127*61046927SAndroid Build Coastguard Workerenum DimensionType : byte { 128*61046927SAndroid Build Coastguard Worker DENSE = 0, 129*61046927SAndroid Build Coastguard Worker SPARSE_CSR = 1, 130*61046927SAndroid Build Coastguard Worker} 131*61046927SAndroid Build Coastguard Worker 132*61046927SAndroid Build Coastguard Workertable Int32Vector { 133*61046927SAndroid Build Coastguard Worker values:[int]; 134*61046927SAndroid Build Coastguard Worker} 135*61046927SAndroid Build Coastguard Worker 136*61046927SAndroid Build Coastguard Workertable Uint16Vector { 137*61046927SAndroid Build Coastguard Worker values:[ushort] (force_align: 4); 138*61046927SAndroid Build Coastguard Worker} 139*61046927SAndroid Build Coastguard Worker 140*61046927SAndroid Build Coastguard Workertable Uint8Vector { 141*61046927SAndroid Build Coastguard Worker values:[ubyte] (force_align: 4); 142*61046927SAndroid Build Coastguard Worker} 143*61046927SAndroid Build Coastguard Worker 144*61046927SAndroid Build Coastguard Worker// Variable-typed buffer to store the index metadata for a sparse dimension. 145*61046927SAndroid Build Coastguard Worker// The widest type is Int32 instead of UInt32 because tensor's shape is a int32 146*61046927SAndroid Build Coastguard Worker// vector. We don't want the per-dimensional index to overflow that range. 147*61046927SAndroid Build Coastguard Workerunion SparseIndexVector { 148*61046927SAndroid Build Coastguard Worker Int32Vector, 149*61046927SAndroid Build Coastguard Worker Uint16Vector, 150*61046927SAndroid Build Coastguard Worker Uint8Vector 151*61046927SAndroid Build Coastguard Worker} 152*61046927SAndroid Build Coastguard Worker 153*61046927SAndroid Build Coastguard Workertable DimensionMetadata { 154*61046927SAndroid Build Coastguard Worker // Whether a dimension is dense or sparse. 155*61046927SAndroid Build Coastguard Worker format:DimensionType; 156*61046927SAndroid Build Coastguard Worker // Index metadata used for a dimension. 157*61046927SAndroid Build Coastguard Worker // - If format is DimensionType.DENSE then we use the dense_size field to 158*61046927SAndroid Build Coastguard Worker // store the size of that dimension. Each index in that dimension is 159*61046927SAndroid Build Coastguard Worker // stored implicitly. 160*61046927SAndroid Build Coastguard Worker // - If format is DimensionType.SPARSE_CSR then we use array_segments and 161*61046927SAndroid Build Coastguard Worker // array_indices to encode that dimension. array_segments represents how 162*61046927SAndroid Build Coastguard Worker // to segment the indices array, each segment corresponds to one element 163*61046927SAndroid Build Coastguard Worker // in the previous dimension. array_indices represents the index of the 164*61046927SAndroid Build Coastguard Worker // non-zero elements within this dimension (as those in the CSR matrix 165*61046927SAndroid Build Coastguard Worker // format, where the first array is row pointers and the second array is 166*61046927SAndroid Build Coastguard Worker // column indices). 167*61046927SAndroid Build Coastguard Worker dense_size:int; 168*61046927SAndroid Build Coastguard Worker array_segments:SparseIndexVector; 169*61046927SAndroid Build Coastguard Worker array_indices:SparseIndexVector; 170*61046927SAndroid Build Coastguard Worker} 171*61046927SAndroid Build Coastguard Worker 172*61046927SAndroid Build Coastguard Worker// Parameters to encode a sparse TfLite tensor. 173*61046927SAndroid Build Coastguard Workertable SparsityParameters { 174*61046927SAndroid Build Coastguard Worker // The traversal order of the dimensions defined in the `shape` field of the 175*61046927SAndroid Build Coastguard Worker // conceptual dense tensor. For a n-dimensional tensors with dims (d0, d1, 176*61046927SAndroid Build Coastguard Worker // ..., dn-1), 177*61046927SAndroid Build Coastguard Worker // - if not block sparse, the traversal_order is just a permutation of (d0, 178*61046927SAndroid Build Coastguard Worker // ..., dn-1). For example, a 2-D matrix stored in row-major order would 179*61046927SAndroid Build Coastguard Worker // have traversal_order = (d0, d1). 180*61046927SAndroid Build Coastguard Worker // - if block sparse with a k-dimensional block (0 <= k <= n), the 181*61046927SAndroid Build Coastguard Worker // traversal_order has n + k elements. The first n elements are still a 182*61046927SAndroid Build Coastguard Worker // permutation of (d0, ..., dn-1). The lask k elements are a permutation 183*61046927SAndroid Build Coastguard Worker // of (dn, ..., dn+k-1), defining how to traverse a block internally. For 184*61046927SAndroid Build Coastguard Worker // example, a 2-D matrix with 2-D blocks, both stored in row-major order 185*61046927SAndroid Build Coastguard Worker // would have traversal_order = (d0, d1, d2, d3). 186*61046927SAndroid Build Coastguard Worker traversal_order:[int]; 187*61046927SAndroid Build Coastguard Worker // For an n-dimensional tensor with a k-dimensional block (0 <= k <= n), 188*61046927SAndroid Build Coastguard Worker // stores how a block dimension in (dn, ..., dn+k-1) maps to the original 189*61046927SAndroid Build Coastguard Worker // tensor dimension in (d0, ..., dn). 190*61046927SAndroid Build Coastguard Worker // It's stored in the order of (dn, ..., dn+k-1). 191*61046927SAndroid Build Coastguard Worker // If not block-sparse, this field is NULL. 192*61046927SAndroid Build Coastguard Worker block_map:[int]; 193*61046927SAndroid Build Coastguard Worker // In the traversal order defined above, the metadata needed for 194*61046927SAndroid Build Coastguard Worker // each dimension to locate the non-zero values in the original dense tensor. 195*61046927SAndroid Build Coastguard Worker // The size of the dim_metadata array = the size of the traversal_order array 196*61046927SAndroid Build Coastguard Worker // = n + k. 197*61046927SAndroid Build Coastguard Worker dim_metadata:[DimensionMetadata]; 198*61046927SAndroid Build Coastguard Worker} 199*61046927SAndroid Build Coastguard Worker 200*61046927SAndroid Build Coastguard Worker// The nested tensor type for VARIANT type. 201*61046927SAndroid Build Coastguard Workertable VariantSubType { 202*61046927SAndroid Build Coastguard Worker // The tensor shape. 203*61046927SAndroid Build Coastguard Worker shape:[int]; 204*61046927SAndroid Build Coastguard Worker type:TensorType; 205*61046927SAndroid Build Coastguard Worker // If false, the rank or the number of tensor dimensions is unknown. 206*61046927SAndroid Build Coastguard Worker // If false, "shape" must be []. 207*61046927SAndroid Build Coastguard Worker has_rank: bool = false; 208*61046927SAndroid Build Coastguard Worker} 209*61046927SAndroid Build Coastguard Worker 210*61046927SAndroid Build Coastguard Workertable Tensor { 211*61046927SAndroid Build Coastguard Worker // The tensor shape. The meaning of each entry is operator-specific but 212*61046927SAndroid Build Coastguard Worker // builtin ops use: [batch size, height, width, number of channels] (That's 213*61046927SAndroid Build Coastguard Worker // Tensorflow's NHWC). 214*61046927SAndroid Build Coastguard Worker shape:[int]; 215*61046927SAndroid Build Coastguard Worker type:TensorType; 216*61046927SAndroid Build Coastguard Worker // An index that refers to the buffers table at the root of the model. Or, 217*61046927SAndroid Build Coastguard Worker // if there is no data buffer associated (i.e. intermediate results), then 218*61046927SAndroid Build Coastguard Worker // this is 0 (which refers to an always existent empty buffer). 219*61046927SAndroid Build Coastguard Worker // 220*61046927SAndroid Build Coastguard Worker // The data_buffer itself is an opaque container, with the assumption that the 221*61046927SAndroid Build Coastguard Worker // target device is little-endian. In addition, all builtin operators assume 222*61046927SAndroid Build Coastguard Worker // the memory is ordered such that if `shape` is [4, 3, 2], then index 223*61046927SAndroid Build Coastguard Worker // [i, j, k] maps to data_buffer[i*3*2 + j*2 + k]. 224*61046927SAndroid Build Coastguard Worker buffer:uint; 225*61046927SAndroid Build Coastguard Worker name:string; // For debugging and importing back into tensorflow. 226*61046927SAndroid Build Coastguard Worker quantization:QuantizationParameters; // Optional. 227*61046927SAndroid Build Coastguard Worker 228*61046927SAndroid Build Coastguard Worker is_variable:bool = false; 229*61046927SAndroid Build Coastguard Worker 230*61046927SAndroid Build Coastguard Worker // Parameters to encode a sparse tensor. See the example in 231*61046927SAndroid Build Coastguard Worker // tensorflow/lite/testdata/sparse_tensor.json. 232*61046927SAndroid Build Coastguard Worker sparsity:SparsityParameters; // Optional. 233*61046927SAndroid Build Coastguard Worker 234*61046927SAndroid Build Coastguard Worker // Encodes `shape` with unknown dimensions. Unknown dimensions are 235*61046927SAndroid Build Coastguard Worker // represented with -1. 236*61046927SAndroid Build Coastguard Worker shape_signature:[int]; // Optional. 237*61046927SAndroid Build Coastguard Worker 238*61046927SAndroid Build Coastguard Worker // This field is added to distinguish between scalars and tensors of unknown 239*61046927SAndroid Build Coastguard Worker // ranks (both of which shape is []). 240*61046927SAndroid Build Coastguard Worker // For scalars (rank = 0), shape = [] and has_rank = true. 241*61046927SAndroid Build Coastguard Worker // For tensors with known rank (rank > 0) and shape, shape = [...] and 242*61046927SAndroid Build Coastguard Worker // has_rank = true. 243*61046927SAndroid Build Coastguard Worker // For tensors with unknown rank and shape, shape = [] and has_rank = false. 244*61046927SAndroid Build Coastguard Worker has_rank: bool = false; 245*61046927SAndroid Build Coastguard Worker 246*61046927SAndroid Build Coastguard Worker // The nested Tensor types for VARIANT type. This is always empty for 247*61046927SAndroid Build Coastguard Worker // non-VARIANT types. This is optional because the nested type can be omitted. 248*61046927SAndroid Build Coastguard Worker // Currently only 1 subtype is supported. The field is defined as an array for 249*61046927SAndroid Build Coastguard Worker // flexibility of supporting multiple subtypes in the future. 250*61046927SAndroid Build Coastguard Worker variant_tensors:[VariantSubType]; 251*61046927SAndroid Build Coastguard Worker} 252*61046927SAndroid Build Coastguard Worker 253*61046927SAndroid Build Coastguard Worker// A list of builtin operators. Builtin operators are slightly faster than custom 254*61046927SAndroid Build Coastguard Worker// ones, but not by much. Moreover, while custom operators accept an opaque 255*61046927SAndroid Build Coastguard Worker// object containing configuration parameters, builtins have a predetermined 256*61046927SAndroid Build Coastguard Worker// set of acceptable options. 257*61046927SAndroid Build Coastguard Worker// LINT.IfChange 258*61046927SAndroid Build Coastguard Workerenum BuiltinOperator : int32 { 259*61046927SAndroid Build Coastguard Worker ADD = 0, 260*61046927SAndroid Build Coastguard Worker AVERAGE_POOL_2D = 1, 261*61046927SAndroid Build Coastguard Worker CONCATENATION = 2, 262*61046927SAndroid Build Coastguard Worker CONV_2D = 3, 263*61046927SAndroid Build Coastguard Worker DEPTHWISE_CONV_2D = 4, 264*61046927SAndroid Build Coastguard Worker DEPTH_TO_SPACE = 5, 265*61046927SAndroid Build Coastguard Worker DEQUANTIZE = 6, 266*61046927SAndroid Build Coastguard Worker EMBEDDING_LOOKUP = 7, 267*61046927SAndroid Build Coastguard Worker FLOOR = 8, 268*61046927SAndroid Build Coastguard Worker FULLY_CONNECTED = 9, 269*61046927SAndroid Build Coastguard Worker HASHTABLE_LOOKUP = 10, 270*61046927SAndroid Build Coastguard Worker L2_NORMALIZATION = 11, 271*61046927SAndroid Build Coastguard Worker L2_POOL_2D = 12, 272*61046927SAndroid Build Coastguard Worker LOCAL_RESPONSE_NORMALIZATION = 13, 273*61046927SAndroid Build Coastguard Worker LOGISTIC = 14, 274*61046927SAndroid Build Coastguard Worker LSH_PROJECTION = 15, 275*61046927SAndroid Build Coastguard Worker LSTM = 16, 276*61046927SAndroid Build Coastguard Worker MAX_POOL_2D = 17, 277*61046927SAndroid Build Coastguard Worker MUL = 18, 278*61046927SAndroid Build Coastguard Worker RELU = 19, 279*61046927SAndroid Build Coastguard Worker // NOTE(aselle): RELU_N1_TO_1 used to be called RELU1, but it was renamed 280*61046927SAndroid Build Coastguard Worker // since different model developers use RELU1 in different ways. Never 281*61046927SAndroid Build Coastguard Worker // create another op called RELU1. 282*61046927SAndroid Build Coastguard Worker RELU_N1_TO_1 = 20, 283*61046927SAndroid Build Coastguard Worker RELU6 = 21, 284*61046927SAndroid Build Coastguard Worker RESHAPE = 22, 285*61046927SAndroid Build Coastguard Worker RESIZE_BILINEAR = 23, 286*61046927SAndroid Build Coastguard Worker RNN = 24, 287*61046927SAndroid Build Coastguard Worker SOFTMAX = 25, 288*61046927SAndroid Build Coastguard Worker SPACE_TO_DEPTH = 26, 289*61046927SAndroid Build Coastguard Worker SVDF = 27, 290*61046927SAndroid Build Coastguard Worker TANH = 28, 291*61046927SAndroid Build Coastguard Worker CONCAT_EMBEDDINGS = 29, 292*61046927SAndroid Build Coastguard Worker SKIP_GRAM = 30, 293*61046927SAndroid Build Coastguard Worker CALL = 31, 294*61046927SAndroid Build Coastguard Worker CUSTOM = 32, 295*61046927SAndroid Build Coastguard Worker EMBEDDING_LOOKUP_SPARSE = 33, 296*61046927SAndroid Build Coastguard Worker PAD = 34, 297*61046927SAndroid Build Coastguard Worker UNIDIRECTIONAL_SEQUENCE_RNN = 35, 298*61046927SAndroid Build Coastguard Worker GATHER = 36, 299*61046927SAndroid Build Coastguard Worker BATCH_TO_SPACE_ND = 37, 300*61046927SAndroid Build Coastguard Worker SPACE_TO_BATCH_ND = 38, 301*61046927SAndroid Build Coastguard Worker TRANSPOSE = 39, 302*61046927SAndroid Build Coastguard Worker MEAN = 40, 303*61046927SAndroid Build Coastguard Worker SUB = 41, 304*61046927SAndroid Build Coastguard Worker DIV = 42, 305*61046927SAndroid Build Coastguard Worker SQUEEZE = 43, 306*61046927SAndroid Build Coastguard Worker UNIDIRECTIONAL_SEQUENCE_LSTM = 44, 307*61046927SAndroid Build Coastguard Worker STRIDED_SLICE = 45, 308*61046927SAndroid Build Coastguard Worker BIDIRECTIONAL_SEQUENCE_RNN = 46, 309*61046927SAndroid Build Coastguard Worker EXP = 47, 310*61046927SAndroid Build Coastguard Worker TOPK_V2 = 48, 311*61046927SAndroid Build Coastguard Worker SPLIT = 49, 312*61046927SAndroid Build Coastguard Worker LOG_SOFTMAX = 50, 313*61046927SAndroid Build Coastguard Worker // DELEGATE is a special op type for the operations which are delegated to 314*61046927SAndroid Build Coastguard Worker // other backends. 315*61046927SAndroid Build Coastguard Worker // WARNING: Experimental interface, subject to change 316*61046927SAndroid Build Coastguard Worker DELEGATE = 51, 317*61046927SAndroid Build Coastguard Worker BIDIRECTIONAL_SEQUENCE_LSTM = 52, 318*61046927SAndroid Build Coastguard Worker CAST = 53, 319*61046927SAndroid Build Coastguard Worker PRELU = 54, 320*61046927SAndroid Build Coastguard Worker MAXIMUM = 55, 321*61046927SAndroid Build Coastguard Worker ARG_MAX = 56, 322*61046927SAndroid Build Coastguard Worker MINIMUM = 57, 323*61046927SAndroid Build Coastguard Worker LESS = 58, 324*61046927SAndroid Build Coastguard Worker NEG = 59, 325*61046927SAndroid Build Coastguard Worker PADV2 = 60, 326*61046927SAndroid Build Coastguard Worker GREATER = 61, 327*61046927SAndroid Build Coastguard Worker GREATER_EQUAL = 62, 328*61046927SAndroid Build Coastguard Worker LESS_EQUAL = 63, 329*61046927SAndroid Build Coastguard Worker SELECT = 64, 330*61046927SAndroid Build Coastguard Worker SLICE = 65, 331*61046927SAndroid Build Coastguard Worker SIN = 66, 332*61046927SAndroid Build Coastguard Worker TRANSPOSE_CONV = 67, 333*61046927SAndroid Build Coastguard Worker SPARSE_TO_DENSE = 68, 334*61046927SAndroid Build Coastguard Worker TILE = 69, 335*61046927SAndroid Build Coastguard Worker EXPAND_DIMS = 70, 336*61046927SAndroid Build Coastguard Worker EQUAL = 71, 337*61046927SAndroid Build Coastguard Worker NOT_EQUAL = 72, 338*61046927SAndroid Build Coastguard Worker LOG = 73, 339*61046927SAndroid Build Coastguard Worker SUM = 74, 340*61046927SAndroid Build Coastguard Worker SQRT = 75, 341*61046927SAndroid Build Coastguard Worker RSQRT = 76, 342*61046927SAndroid Build Coastguard Worker SHAPE = 77, 343*61046927SAndroid Build Coastguard Worker POW = 78, 344*61046927SAndroid Build Coastguard Worker ARG_MIN = 79, 345*61046927SAndroid Build Coastguard Worker FAKE_QUANT = 80, 346*61046927SAndroid Build Coastguard Worker REDUCE_PROD = 81, 347*61046927SAndroid Build Coastguard Worker REDUCE_MAX = 82, 348*61046927SAndroid Build Coastguard Worker PACK = 83, 349*61046927SAndroid Build Coastguard Worker LOGICAL_OR = 84, 350*61046927SAndroid Build Coastguard Worker ONE_HOT = 85, 351*61046927SAndroid Build Coastguard Worker LOGICAL_AND = 86, 352*61046927SAndroid Build Coastguard Worker LOGICAL_NOT = 87, 353*61046927SAndroid Build Coastguard Worker UNPACK = 88, 354*61046927SAndroid Build Coastguard Worker REDUCE_MIN = 89, 355*61046927SAndroid Build Coastguard Worker FLOOR_DIV = 90, 356*61046927SAndroid Build Coastguard Worker REDUCE_ANY = 91, 357*61046927SAndroid Build Coastguard Worker SQUARE = 92, 358*61046927SAndroid Build Coastguard Worker ZEROS_LIKE = 93, 359*61046927SAndroid Build Coastguard Worker FILL = 94, 360*61046927SAndroid Build Coastguard Worker FLOOR_MOD = 95, 361*61046927SAndroid Build Coastguard Worker RANGE = 96, 362*61046927SAndroid Build Coastguard Worker RESIZE_NEAREST_NEIGHBOR = 97, 363*61046927SAndroid Build Coastguard Worker LEAKY_RELU = 98, 364*61046927SAndroid Build Coastguard Worker SQUARED_DIFFERENCE = 99, 365*61046927SAndroid Build Coastguard Worker MIRROR_PAD = 100, 366*61046927SAndroid Build Coastguard Worker ABS = 101, 367*61046927SAndroid Build Coastguard Worker SPLIT_V = 102, 368*61046927SAndroid Build Coastguard Worker UNIQUE = 103, 369*61046927SAndroid Build Coastguard Worker CEIL = 104, 370*61046927SAndroid Build Coastguard Worker REVERSE_V2 = 105, 371*61046927SAndroid Build Coastguard Worker ADD_N = 106, 372*61046927SAndroid Build Coastguard Worker GATHER_ND = 107, 373*61046927SAndroid Build Coastguard Worker COS = 108, 374*61046927SAndroid Build Coastguard Worker WHERE = 109, 375*61046927SAndroid Build Coastguard Worker RANK = 110, 376*61046927SAndroid Build Coastguard Worker ELU = 111, 377*61046927SAndroid Build Coastguard Worker REVERSE_SEQUENCE = 112, 378*61046927SAndroid Build Coastguard Worker MATRIX_DIAG = 113, 379*61046927SAndroid Build Coastguard Worker QUANTIZE = 114, 380*61046927SAndroid Build Coastguard Worker MATRIX_SET_DIAG = 115, 381*61046927SAndroid Build Coastguard Worker ROUND = 116, 382*61046927SAndroid Build Coastguard Worker HARD_SWISH = 117, 383*61046927SAndroid Build Coastguard Worker IF = 118, 384*61046927SAndroid Build Coastguard Worker WHILE = 119, 385*61046927SAndroid Build Coastguard Worker NON_MAX_SUPPRESSION_V4 = 120, 386*61046927SAndroid Build Coastguard Worker NON_MAX_SUPPRESSION_V5 = 121, 387*61046927SAndroid Build Coastguard Worker SCATTER_ND = 122, 388*61046927SAndroid Build Coastguard Worker SELECT_V2 = 123, 389*61046927SAndroid Build Coastguard Worker DENSIFY = 124, 390*61046927SAndroid Build Coastguard Worker SEGMENT_SUM = 125, 391*61046927SAndroid Build Coastguard Worker BATCH_MATMUL = 126, 392*61046927SAndroid Build Coastguard Worker PLACEHOLDER_FOR_GREATER_OP_CODES = 127, 393*61046927SAndroid Build Coastguard Worker CUMSUM = 128, 394*61046927SAndroid Build Coastguard Worker CALL_ONCE = 129, 395*61046927SAndroid Build Coastguard Worker BROADCAST_TO = 130, 396*61046927SAndroid Build Coastguard Worker RFFT2D = 131, 397*61046927SAndroid Build Coastguard Worker CONV_3D = 132, 398*61046927SAndroid Build Coastguard Worker IMAG=133, 399*61046927SAndroid Build Coastguard Worker REAL=134, 400*61046927SAndroid Build Coastguard Worker COMPLEX_ABS=135, 401*61046927SAndroid Build Coastguard Worker HASHTABLE = 136, 402*61046927SAndroid Build Coastguard Worker HASHTABLE_FIND = 137, 403*61046927SAndroid Build Coastguard Worker HASHTABLE_IMPORT = 138, 404*61046927SAndroid Build Coastguard Worker HASHTABLE_SIZE = 139, 405*61046927SAndroid Build Coastguard Worker REDUCE_ALL = 140, 406*61046927SAndroid Build Coastguard Worker CONV_3D_TRANSPOSE = 141, 407*61046927SAndroid Build Coastguard Worker VAR_HANDLE = 142, 408*61046927SAndroid Build Coastguard Worker READ_VARIABLE = 143, 409*61046927SAndroid Build Coastguard Worker ASSIGN_VARIABLE = 144, 410*61046927SAndroid Build Coastguard Worker BROADCAST_ARGS = 145, 411*61046927SAndroid Build Coastguard Worker RANDOM_STANDARD_NORMAL = 146, 412*61046927SAndroid Build Coastguard Worker BUCKETIZE = 147, 413*61046927SAndroid Build Coastguard Worker RANDOM_UNIFORM = 148, 414*61046927SAndroid Build Coastguard Worker MULTINOMIAL = 149, 415*61046927SAndroid Build Coastguard Worker GELU = 150, 416*61046927SAndroid Build Coastguard Worker DYNAMIC_UPDATE_SLICE = 151, 417*61046927SAndroid Build Coastguard Worker RELU_0_TO_1 = 152, 418*61046927SAndroid Build Coastguard Worker UNSORTED_SEGMENT_PROD = 153, 419*61046927SAndroid Build Coastguard Worker UNSORTED_SEGMENT_MAX = 154, 420*61046927SAndroid Build Coastguard Worker UNSORTED_SEGMENT_SUM = 155, 421*61046927SAndroid Build Coastguard Worker ATAN2 = 156, 422*61046927SAndroid Build Coastguard Worker UNSORTED_SEGMENT_MIN = 157, 423*61046927SAndroid Build Coastguard Worker SIGN = 158, 424*61046927SAndroid Build Coastguard Worker BITCAST = 159, 425*61046927SAndroid Build Coastguard Worker BITWISE_XOR = 160, 426*61046927SAndroid Build Coastguard Worker RIGHT_SHIFT = 161, 427*61046927SAndroid Build Coastguard Worker // All Operators start with STABLEHLO_ prefixes are subject to change 428*61046927SAndroid Build Coastguard Worker // Many of the ops below can not be executed by TFlite runtime 429*61046927SAndroid Build Coastguard Worker STABLEHLO_LOGISTIC = 162, // WARNING: Do not have runtime support 430*61046927SAndroid Build Coastguard Worker STABLEHLO_ADD = 163, // WARNING: No runtime support yet 431*61046927SAndroid Build Coastguard Worker STABLEHLO_DIVIDE = 164, // WARNING: No runtime support yet 432*61046927SAndroid Build Coastguard Worker STABLEHLO_MULTIPLY = 165, // WARNING: No runtime support yet 433*61046927SAndroid Build Coastguard Worker STABLEHLO_MAXIMUM = 166, // WARNING: No runtime support yet 434*61046927SAndroid Build Coastguard Worker STABLEHLO_RESHAPE = 167, // WARNING: No runtime support yet 435*61046927SAndroid Build Coastguard Worker STABLEHLO_CLAMP = 168, // WARNING: No runtime support 436*61046927SAndroid Build Coastguard Worker STABLEHLO_CONCATENATE = 169, // WARNING: No runtime support 437*61046927SAndroid Build Coastguard Worker STABLEHLO_BROADCAST_IN_DIM = 170, // WARNING: No runtime support 438*61046927SAndroid Build Coastguard Worker STABLEHLO_CONVOLUTION = 171, // WARNING: No runtime support 439*61046927SAndroid Build Coastguard Worker STABLEHLO_SLICE = 172, // WARNING: No runtime support 440*61046927SAndroid Build Coastguard Worker STABLEHLO_CUSTOM_CALL = 173, // WARNING: No runtime support 441*61046927SAndroid Build Coastguard Worker STABLEHLO_REDUCE = 174, // WARNING: No runtime support 442*61046927SAndroid Build Coastguard Worker STABLEHLO_ABS = 175, // WARNING: No runtime support 443*61046927SAndroid Build Coastguard Worker STABLEHLO_AND = 176, // WARNING: No runtime support 444*61046927SAndroid Build Coastguard Worker STABLEHLO_COSINE = 177, // WARNING: No runtime support 445*61046927SAndroid Build Coastguard Worker STABLEHLO_EXPONENTIAL = 178, // WARNING: No runtime support 446*61046927SAndroid Build Coastguard Worker STABLEHLO_FLOOR = 179, // WARNING: No runtime support 447*61046927SAndroid Build Coastguard Worker STABLEHLO_LOG = 180, // WARNING: No runtime support 448*61046927SAndroid Build Coastguard Worker STABLEHLO_MINIMUM = 181, // WARNING: No runtime support 449*61046927SAndroid Build Coastguard Worker STABLEHLO_NEGATE = 182, // WARNING: No runtime support 450*61046927SAndroid Build Coastguard Worker STABLEHLO_OR = 183, // WARNING: No runtime support 451*61046927SAndroid Build Coastguard Worker STABLEHLO_POWER = 184, // WARNING: No runtime support 452*61046927SAndroid Build Coastguard Worker STABLEHLO_REMAINDER = 185, // WARNING: No runtime support 453*61046927SAndroid Build Coastguard Worker STABLEHLO_RSQRT = 186, // WARNING: No runtime support 454*61046927SAndroid Build Coastguard Worker STABLEHLO_SELECT = 187, // WARNING: No runtime support 455*61046927SAndroid Build Coastguard Worker STABLEHLO_SUBTRACT = 188, // WARNING: No runtime support 456*61046927SAndroid Build Coastguard Worker STABLEHLO_TANH = 189, // WARNING: No runtime support 457*61046927SAndroid Build Coastguard Worker STABLEHLO_SCATTER = 190, 458*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARE = 191, // WARNING: No runtime support 459*61046927SAndroid Build Coastguard Worker STABLEHLO_CONVERT = 192, // WARNING: No runtime support 460*61046927SAndroid Build Coastguard Worker STABLEHLO_DYNAMIC_SLICE = 193, // WARNING: No runtime support 461*61046927SAndroid Build Coastguard Worker STABLEHLO_DYNAMIC_UPDATE_SLICE = 194, // WARNING: No runtime support 462*61046927SAndroid Build Coastguard Worker STABLEHLO_PAD = 195, // WARNING: No runtime support 463*61046927SAndroid Build Coastguard Worker STABLEHLO_IOTA = 196, // WARNING: No runtime support 464*61046927SAndroid Build Coastguard Worker STABLEHLO_DOT_GENERAL = 197, // WARNING: No runtime support 465*61046927SAndroid Build Coastguard Worker STABLEHLO_REDUCE_WINDOW = 198, // WARNING: No runtime support 466*61046927SAndroid Build Coastguard Worker STABLEHLO_SORT = 199, // WARNING: No runtime support 467*61046927SAndroid Build Coastguard Worker STABLEHLO_WHILE = 200, // WARNING: No runtime support 468*61046927SAndroid Build Coastguard Worker STABLEHLO_GATHER = 201, // WARNING: No runtime support 469*61046927SAndroid Build Coastguard Worker STABLEHLO_TRANSPOSE = 202, // WARNING: No runtime support 470*61046927SAndroid Build Coastguard Worker DILATE = 203, 471*61046927SAndroid Build Coastguard Worker STABLEHLO_RNG_BIT_GENERATOR = 204, 472*61046927SAndroid Build Coastguard Worker REDUCE_WINDOW = 205, 473*61046927SAndroid Build Coastguard Worker} 474*61046927SAndroid Build Coastguard Worker// LINT.ThenChange(nnapi_linter/linter.proto) 475*61046927SAndroid Build Coastguard Worker 476*61046927SAndroid Build Coastguard Worker// Options for the builtin operators. 477*61046927SAndroid Build Coastguard Workerunion BuiltinOptions { 478*61046927SAndroid Build Coastguard Worker Conv2DOptions, 479*61046927SAndroid Build Coastguard Worker DepthwiseConv2DOptions, 480*61046927SAndroid Build Coastguard Worker ConcatEmbeddingsOptions, 481*61046927SAndroid Build Coastguard Worker LSHProjectionOptions, 482*61046927SAndroid Build Coastguard Worker Pool2DOptions, 483*61046927SAndroid Build Coastguard Worker SVDFOptions, 484*61046927SAndroid Build Coastguard Worker RNNOptions, 485*61046927SAndroid Build Coastguard Worker FullyConnectedOptions, 486*61046927SAndroid Build Coastguard Worker SoftmaxOptions, 487*61046927SAndroid Build Coastguard Worker ConcatenationOptions, 488*61046927SAndroid Build Coastguard Worker AddOptions, 489*61046927SAndroid Build Coastguard Worker L2NormOptions, 490*61046927SAndroid Build Coastguard Worker LocalResponseNormalizationOptions, 491*61046927SAndroid Build Coastguard Worker LSTMOptions, 492*61046927SAndroid Build Coastguard Worker ResizeBilinearOptions, 493*61046927SAndroid Build Coastguard Worker CallOptions, 494*61046927SAndroid Build Coastguard Worker ReshapeOptions, 495*61046927SAndroid Build Coastguard Worker SkipGramOptions, 496*61046927SAndroid Build Coastguard Worker SpaceToDepthOptions, 497*61046927SAndroid Build Coastguard Worker EmbeddingLookupSparseOptions, 498*61046927SAndroid Build Coastguard Worker MulOptions, 499*61046927SAndroid Build Coastguard Worker PadOptions, 500*61046927SAndroid Build Coastguard Worker GatherOptions, 501*61046927SAndroid Build Coastguard Worker BatchToSpaceNDOptions, 502*61046927SAndroid Build Coastguard Worker SpaceToBatchNDOptions, 503*61046927SAndroid Build Coastguard Worker TransposeOptions, 504*61046927SAndroid Build Coastguard Worker ReducerOptions, 505*61046927SAndroid Build Coastguard Worker SubOptions, 506*61046927SAndroid Build Coastguard Worker DivOptions, 507*61046927SAndroid Build Coastguard Worker SqueezeOptions, 508*61046927SAndroid Build Coastguard Worker SequenceRNNOptions, 509*61046927SAndroid Build Coastguard Worker StridedSliceOptions, 510*61046927SAndroid Build Coastguard Worker ExpOptions, 511*61046927SAndroid Build Coastguard Worker TopKV2Options, 512*61046927SAndroid Build Coastguard Worker SplitOptions, 513*61046927SAndroid Build Coastguard Worker LogSoftmaxOptions, 514*61046927SAndroid Build Coastguard Worker CastOptions, 515*61046927SAndroid Build Coastguard Worker DequantizeOptions, 516*61046927SAndroid Build Coastguard Worker MaximumMinimumOptions, 517*61046927SAndroid Build Coastguard Worker ArgMaxOptions, 518*61046927SAndroid Build Coastguard Worker LessOptions, 519*61046927SAndroid Build Coastguard Worker NegOptions, 520*61046927SAndroid Build Coastguard Worker PadV2Options, 521*61046927SAndroid Build Coastguard Worker GreaterOptions, 522*61046927SAndroid Build Coastguard Worker GreaterEqualOptions, 523*61046927SAndroid Build Coastguard Worker LessEqualOptions, 524*61046927SAndroid Build Coastguard Worker SelectOptions, 525*61046927SAndroid Build Coastguard Worker SliceOptions, 526*61046927SAndroid Build Coastguard Worker TransposeConvOptions, 527*61046927SAndroid Build Coastguard Worker SparseToDenseOptions, 528*61046927SAndroid Build Coastguard Worker TileOptions, 529*61046927SAndroid Build Coastguard Worker ExpandDimsOptions, 530*61046927SAndroid Build Coastguard Worker EqualOptions, 531*61046927SAndroid Build Coastguard Worker NotEqualOptions, 532*61046927SAndroid Build Coastguard Worker ShapeOptions, 533*61046927SAndroid Build Coastguard Worker PowOptions, 534*61046927SAndroid Build Coastguard Worker ArgMinOptions, 535*61046927SAndroid Build Coastguard Worker FakeQuantOptions, 536*61046927SAndroid Build Coastguard Worker PackOptions, 537*61046927SAndroid Build Coastguard Worker LogicalOrOptions, 538*61046927SAndroid Build Coastguard Worker OneHotOptions, 539*61046927SAndroid Build Coastguard Worker LogicalAndOptions, 540*61046927SAndroid Build Coastguard Worker LogicalNotOptions, 541*61046927SAndroid Build Coastguard Worker UnpackOptions, 542*61046927SAndroid Build Coastguard Worker FloorDivOptions, 543*61046927SAndroid Build Coastguard Worker SquareOptions, 544*61046927SAndroid Build Coastguard Worker ZerosLikeOptions, 545*61046927SAndroid Build Coastguard Worker FillOptions, 546*61046927SAndroid Build Coastguard Worker BidirectionalSequenceLSTMOptions, 547*61046927SAndroid Build Coastguard Worker BidirectionalSequenceRNNOptions, 548*61046927SAndroid Build Coastguard Worker UnidirectionalSequenceLSTMOptions, 549*61046927SAndroid Build Coastguard Worker FloorModOptions, 550*61046927SAndroid Build Coastguard Worker RangeOptions, 551*61046927SAndroid Build Coastguard Worker ResizeNearestNeighborOptions, 552*61046927SAndroid Build Coastguard Worker LeakyReluOptions, 553*61046927SAndroid Build Coastguard Worker SquaredDifferenceOptions, 554*61046927SAndroid Build Coastguard Worker MirrorPadOptions, 555*61046927SAndroid Build Coastguard Worker AbsOptions, 556*61046927SAndroid Build Coastguard Worker SplitVOptions, 557*61046927SAndroid Build Coastguard Worker UniqueOptions, 558*61046927SAndroid Build Coastguard Worker ReverseV2Options, 559*61046927SAndroid Build Coastguard Worker AddNOptions, 560*61046927SAndroid Build Coastguard Worker GatherNdOptions, 561*61046927SAndroid Build Coastguard Worker CosOptions, 562*61046927SAndroid Build Coastguard Worker WhereOptions, 563*61046927SAndroid Build Coastguard Worker RankOptions, 564*61046927SAndroid Build Coastguard Worker ReverseSequenceOptions, 565*61046927SAndroid Build Coastguard Worker MatrixDiagOptions, 566*61046927SAndroid Build Coastguard Worker QuantizeOptions, 567*61046927SAndroid Build Coastguard Worker MatrixSetDiagOptions, 568*61046927SAndroid Build Coastguard Worker HardSwishOptions, 569*61046927SAndroid Build Coastguard Worker IfOptions, 570*61046927SAndroid Build Coastguard Worker WhileOptions, 571*61046927SAndroid Build Coastguard Worker DepthToSpaceOptions, 572*61046927SAndroid Build Coastguard Worker NonMaxSuppressionV4Options, 573*61046927SAndroid Build Coastguard Worker NonMaxSuppressionV5Options, 574*61046927SAndroid Build Coastguard Worker ScatterNdOptions, 575*61046927SAndroid Build Coastguard Worker SelectV2Options, 576*61046927SAndroid Build Coastguard Worker DensifyOptions, 577*61046927SAndroid Build Coastguard Worker SegmentSumOptions, 578*61046927SAndroid Build Coastguard Worker BatchMatMulOptions, 579*61046927SAndroid Build Coastguard Worker CumsumOptions, 580*61046927SAndroid Build Coastguard Worker CallOnceOptions, 581*61046927SAndroid Build Coastguard Worker BroadcastToOptions, 582*61046927SAndroid Build Coastguard Worker Rfft2dOptions, 583*61046927SAndroid Build Coastguard Worker Conv3DOptions, 584*61046927SAndroid Build Coastguard Worker HashtableOptions, 585*61046927SAndroid Build Coastguard Worker HashtableFindOptions, 586*61046927SAndroid Build Coastguard Worker HashtableImportOptions, 587*61046927SAndroid Build Coastguard Worker HashtableSizeOptions, 588*61046927SAndroid Build Coastguard Worker VarHandleOptions, 589*61046927SAndroid Build Coastguard Worker ReadVariableOptions, 590*61046927SAndroid Build Coastguard Worker AssignVariableOptions, 591*61046927SAndroid Build Coastguard Worker RandomOptions, 592*61046927SAndroid Build Coastguard Worker BucketizeOptions, 593*61046927SAndroid Build Coastguard Worker GeluOptions, 594*61046927SAndroid Build Coastguard Worker DynamicUpdateSliceOptions, 595*61046927SAndroid Build Coastguard Worker UnsortedSegmentProdOptions, 596*61046927SAndroid Build Coastguard Worker UnsortedSegmentMaxOptions, 597*61046927SAndroid Build Coastguard Worker UnsortedSegmentMinOptions, 598*61046927SAndroid Build Coastguard Worker UnsortedSegmentSumOptions, 599*61046927SAndroid Build Coastguard Worker ATan2Options, 600*61046927SAndroid Build Coastguard Worker SignOptions, 601*61046927SAndroid Build Coastguard Worker BitcastOptions, 602*61046927SAndroid Build Coastguard Worker BitwiseXorOptions, 603*61046927SAndroid Build Coastguard Worker RightShiftOptions, 604*61046927SAndroid Build Coastguard Worker // DO NOT add new options this union, will cause failure in Java api 605*61046927SAndroid Build Coastguard Worker // generation otherwise 606*61046927SAndroid Build Coastguard Worker // Add new builtin options into builtin options 2 instead 607*61046927SAndroid Build Coastguard Worker} 608*61046927SAndroid Build Coastguard Worker 609*61046927SAndroid Build Coastguard Workerunion BuiltinOptions2{ 610*61046927SAndroid Build Coastguard Worker StablehloConcatenateOptions, 611*61046927SAndroid Build Coastguard Worker StablehloBroadcastInDimOptions, 612*61046927SAndroid Build Coastguard Worker StablehloSliceOptions, 613*61046927SAndroid Build Coastguard Worker StablehloConvolutionOptions, 614*61046927SAndroid Build Coastguard Worker StablehloCustomCallOptions, 615*61046927SAndroid Build Coastguard Worker StablehloReduceOptions, 616*61046927SAndroid Build Coastguard Worker StablehloScatterOptions, 617*61046927SAndroid Build Coastguard Worker StablehloCompareOptions, 618*61046927SAndroid Build Coastguard Worker StablehloDynamicSliceOptions, 619*61046927SAndroid Build Coastguard Worker StablehloPadOptions, 620*61046927SAndroid Build Coastguard Worker StablehloIotaOptions, 621*61046927SAndroid Build Coastguard Worker StablehloDotGeneralOptions, 622*61046927SAndroid Build Coastguard Worker StablehloReduceWindowOptions, 623*61046927SAndroid Build Coastguard Worker StablehloSortOptions, 624*61046927SAndroid Build Coastguard Worker StablehloWhileOptions, 625*61046927SAndroid Build Coastguard Worker StablehloGatherOptions, 626*61046927SAndroid Build Coastguard Worker StablehloTransposeOptions, 627*61046927SAndroid Build Coastguard Worker DilateOptions, 628*61046927SAndroid Build Coastguard Worker StablehloRngBitGeneratorOptions, 629*61046927SAndroid Build Coastguard Worker ReduceWindowOptions, 630*61046927SAndroid Build Coastguard Worker} 631*61046927SAndroid Build Coastguard Worker 632*61046927SAndroid Build Coastguard Workertable StablehloGatherOptions{ 633*61046927SAndroid Build Coastguard Worker offset_dims : [long]; 634*61046927SAndroid Build Coastguard Worker collapsed_slice_dims : [long]; 635*61046927SAndroid Build Coastguard Worker start_index_map : [long]; 636*61046927SAndroid Build Coastguard Worker index_vector_dim : long; 637*61046927SAndroid Build Coastguard Worker slice_sizes : [long]; 638*61046927SAndroid Build Coastguard Worker indices_are_sorted : bool; 639*61046927SAndroid Build Coastguard Worker} 640*61046927SAndroid Build Coastguard Worker 641*61046927SAndroid Build Coastguard Workertable StablehloTransposeOptions{ 642*61046927SAndroid Build Coastguard Worker permutation : [long]; 643*61046927SAndroid Build Coastguard Worker} 644*61046927SAndroid Build Coastguard Worker 645*61046927SAndroid Build Coastguard Workerenum StablehloPrecisionConfig : uint { 646*61046927SAndroid Build Coastguard Worker DEFAULT, 647*61046927SAndroid Build Coastguard Worker HIGH, 648*61046927SAndroid Build Coastguard Worker HIGHEST, 649*61046927SAndroid Build Coastguard Worker} 650*61046927SAndroid Build Coastguard Worker 651*61046927SAndroid Build Coastguard Workertable StablehloDotGeneralOptions{ 652*61046927SAndroid Build Coastguard Worker lhs_batching_dimensions : [long]; 653*61046927SAndroid Build Coastguard Worker rhs_batching_dimensions : [long]; 654*61046927SAndroid Build Coastguard Worker lhs_contracting_dimensions : [long]; 655*61046927SAndroid Build Coastguard Worker rhs_contracting_dimensions : [long]; 656*61046927SAndroid Build Coastguard Worker precision_config : [StablehloPrecisionConfig]; 657*61046927SAndroid Build Coastguard Worker} 658*61046927SAndroid Build Coastguard Worker 659*61046927SAndroid Build Coastguard Workertable StablehloReduceWindowOptions{ 660*61046927SAndroid Build Coastguard Worker window_dimensions : [long]; 661*61046927SAndroid Build Coastguard Worker window_strides : [long]; 662*61046927SAndroid Build Coastguard Worker base_dilations : [long]; 663*61046927SAndroid Build Coastguard Worker window_dilations : [long]; 664*61046927SAndroid Build Coastguard Worker padding : [long]; 665*61046927SAndroid Build Coastguard Worker body_subgraph_index : int; 666*61046927SAndroid Build Coastguard Worker} 667*61046927SAndroid Build Coastguard Worker 668*61046927SAndroid Build Coastguard Workertable StablehloWhileOptions{ 669*61046927SAndroid Build Coastguard Worker cond_subgraph_index : int; 670*61046927SAndroid Build Coastguard Worker body_subgraph_index : int; 671*61046927SAndroid Build Coastguard Worker} 672*61046927SAndroid Build Coastguard Worker 673*61046927SAndroid Build Coastguard Workertable StablehloSortOptions{ 674*61046927SAndroid Build Coastguard Worker dimension : long; 675*61046927SAndroid Build Coastguard Worker is_stable : bool; 676*61046927SAndroid Build Coastguard Worker comparator_subgraph_index : int; 677*61046927SAndroid Build Coastguard Worker} 678*61046927SAndroid Build Coastguard Worker 679*61046927SAndroid Build Coastguard Workertable StablehloConcatenateOptions { 680*61046927SAndroid Build Coastguard Worker dimension : long; 681*61046927SAndroid Build Coastguard Worker} 682*61046927SAndroid Build Coastguard Worker 683*61046927SAndroid Build Coastguard Workertable StablehloBroadcastInDimOptions{ 684*61046927SAndroid Build Coastguard Worker broadcast_dimensions : [long]; 685*61046927SAndroid Build Coastguard Worker} 686*61046927SAndroid Build Coastguard Worker 687*61046927SAndroid Build Coastguard Workerenum StablehloComparisonDirection : uint { 688*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_DIRECTION_EQ, 689*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_DIRECTION_NE, 690*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_DIRECTION_GE, 691*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_DIRECTION_GT, 692*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_DIRECTION_LE, 693*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_DIRECTION_LT, 694*61046927SAndroid Build Coastguard Worker 695*61046927SAndroid Build Coastguard Worker} 696*61046927SAndroid Build Coastguard Worker 697*61046927SAndroid Build Coastguard Workerenum StablehloComparisonType : uint { 698*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_TYPE_NOTYPE, 699*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_TYPE_FLOAT, 700*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_TYPE_FLOAT_TOTAL_ORDER, 701*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_TYPE_SIGNED, 702*61046927SAndroid Build Coastguard Worker STABLEHLO_COMPARISON_TYPE_UNSIGNED, 703*61046927SAndroid Build Coastguard Worker} 704*61046927SAndroid Build Coastguard Worker 705*61046927SAndroid Build Coastguard Workertable StablehloCompareOptions{ 706*61046927SAndroid Build Coastguard Worker comparison_direction : StablehloComparisonDirection; 707*61046927SAndroid Build Coastguard Worker compare_type : StablehloComparisonType; 708*61046927SAndroid Build Coastguard Worker} 709*61046927SAndroid Build Coastguard Worker 710*61046927SAndroid Build Coastguard Workertable StablehloDynamicSliceOptions{ 711*61046927SAndroid Build Coastguard Worker slice_sizes : [long]; 712*61046927SAndroid Build Coastguard Worker} 713*61046927SAndroid Build Coastguard Worker 714*61046927SAndroid Build Coastguard Workertable StablehloPadOptions{ 715*61046927SAndroid Build Coastguard Worker edge_padding_low : [long]; 716*61046927SAndroid Build Coastguard Worker edge_padding_high : [long]; 717*61046927SAndroid Build Coastguard Worker interior_padding : [long]; 718*61046927SAndroid Build Coastguard Worker} 719*61046927SAndroid Build Coastguard Worker 720*61046927SAndroid Build Coastguard Workertable StablehloIotaOptions{ 721*61046927SAndroid Build Coastguard Worker iota_dimension : long; 722*61046927SAndroid Build Coastguard Worker} 723*61046927SAndroid Build Coastguard Worker 724*61046927SAndroid Build Coastguard Workertable StablehloCustomCallOptions { 725*61046927SAndroid Build Coastguard Worker call_target_name : string; 726*61046927SAndroid Build Coastguard Worker has_side_effect : bool; 727*61046927SAndroid Build Coastguard Worker backend_config: string; 728*61046927SAndroid Build Coastguard Worker api_version : int; // will be decprecated 729*61046927SAndroid Build Coastguard Worker called_computations: [int]; // should point to subgraphs of the computations 730*61046927SAndroid Build Coastguard Worker custom_attributes : [ubyte]; 731*61046927SAndroid Build Coastguard Worker} 732*61046927SAndroid Build Coastguard Worker 733*61046927SAndroid Build Coastguard Workertable StablehloReduceOptions { 734*61046927SAndroid Build Coastguard Worker dimensions : [long]; 735*61046927SAndroid Build Coastguard Worker body_subgraph_index : int; 736*61046927SAndroid Build Coastguard Worker} 737*61046927SAndroid Build Coastguard Worker 738*61046927SAndroid Build Coastguard Workertable StablehloSliceOptions{ 739*61046927SAndroid Build Coastguard Worker start_indices : [long]; 740*61046927SAndroid Build Coastguard Worker limit_indices : [long]; 741*61046927SAndroid Build Coastguard Worker strides : [long]; 742*61046927SAndroid Build Coastguard Worker} 743*61046927SAndroid Build Coastguard Worker 744*61046927SAndroid Build Coastguard Workertable StablehloConvolutionOptions{ 745*61046927SAndroid Build Coastguard Worker window_strides : [long]; 746*61046927SAndroid Build Coastguard Worker padding : [long]; 747*61046927SAndroid Build Coastguard Worker lhs_dilation : [long]; 748*61046927SAndroid Build Coastguard Worker rhs_dilation : [long]; 749*61046927SAndroid Build Coastguard Worker window_reversal : [bool]; 750*61046927SAndroid Build Coastguard Worker input_batch_dimension : long; 751*61046927SAndroid Build Coastguard Worker input_feature_dimension : long; 752*61046927SAndroid Build Coastguard Worker input_spatial_dimensions : [long]; 753*61046927SAndroid Build Coastguard Worker kernel_input_feature_dimension : long; 754*61046927SAndroid Build Coastguard Worker kernel_output_feature_dimension : long; 755*61046927SAndroid Build Coastguard Worker kernel_spatial_dimensions : [long]; 756*61046927SAndroid Build Coastguard Worker output_batch_dimension : long; 757*61046927SAndroid Build Coastguard Worker output_feature_dimension : long; 758*61046927SAndroid Build Coastguard Worker output_spatial_dimensions : [long]; 759*61046927SAndroid Build Coastguard Worker feature_group_count : long; 760*61046927SAndroid Build Coastguard Worker batch_group_count : long; 761*61046927SAndroid Build Coastguard Worker precision_config : [StablehloPrecisionConfig]; 762*61046927SAndroid Build Coastguard Worker} 763*61046927SAndroid Build Coastguard Worker 764*61046927SAndroid Build Coastguard Workertable StablehloScatterOptions { 765*61046927SAndroid Build Coastguard Worker indices_are_sorted: bool; 766*61046927SAndroid Build Coastguard Worker update_window_dims: [long]; 767*61046927SAndroid Build Coastguard Worker inserted_window_dims: [long]; 768*61046927SAndroid Build Coastguard Worker scatter_dims_to_operand_dims: [long]; 769*61046927SAndroid Build Coastguard Worker index_vector_dim: long; 770*61046927SAndroid Build Coastguard Worker unique_indices: bool; 771*61046927SAndroid Build Coastguard Worker update_computation_subgraph_index: int; 772*61046927SAndroid Build Coastguard Worker} 773*61046927SAndroid Build Coastguard Worker 774*61046927SAndroid Build Coastguard Workerenum RngAlgorithm : byte { 775*61046927SAndroid Build Coastguard Worker // An algorithm auto-selected by the system according to device type. 776*61046927SAndroid Build Coastguard Worker DEFAULT = 0, 777*61046927SAndroid Build Coastguard Worker // The Philox algorithm, as described in paper 778*61046927SAndroid Build Coastguard Worker // ['Parallel Random Numbers: As Easy as 1, 2, 3'] 779*61046927SAndroid Build Coastguard Worker // (https://www.thesalmons.org/john/random123/papers/random123sc11.pdf) 780*61046927SAndroid Build Coastguard Worker PHILOX = 1, 781*61046927SAndroid Build Coastguard Worker // The ThreeFry algorithm, as described in paper 782*61046927SAndroid Build Coastguard Worker // ['Parallel Random Numbers: As Easy as 1, 2, 3'] 783*61046927SAndroid Build Coastguard Worker // (https://www.thesalmons.org/john/random123/papers/random123sc11.pdf) 784*61046927SAndroid Build Coastguard Worker THREEFRY = 2, 785*61046927SAndroid Build Coastguard Worker} 786*61046927SAndroid Build Coastguard Worker 787*61046927SAndroid Build Coastguard Workertable StablehloRngBitGeneratorOptions { 788*61046927SAndroid Build Coastguard Worker algorithm:RngAlgorithm; 789*61046927SAndroid Build Coastguard Worker} 790*61046927SAndroid Build Coastguard Worker 791*61046927SAndroid Build Coastguard Worker// LINT.IfChange 792*61046927SAndroid Build Coastguard Workerenum Padding : byte { SAME, VALID } 793*61046927SAndroid Build Coastguard Worker// LINT.ThenChange(//tensorflow/compiler/mlir/lite/ir/tfl_op_enums.td) 794*61046927SAndroid Build Coastguard Worker 795*61046927SAndroid Build Coastguard Worker// LINT.IfChange 796*61046927SAndroid Build Coastguard Workerenum ActivationFunctionType : byte { 797*61046927SAndroid Build Coastguard Worker NONE = 0, 798*61046927SAndroid Build Coastguard Worker RELU = 1, 799*61046927SAndroid Build Coastguard Worker RELU_N1_TO_1 = 2, 800*61046927SAndroid Build Coastguard Worker RELU6 = 3, 801*61046927SAndroid Build Coastguard Worker TANH = 4, 802*61046927SAndroid Build Coastguard Worker SIGN_BIT = 5, 803*61046927SAndroid Build Coastguard Worker} 804*61046927SAndroid Build Coastguard Worker// LINT.ThenChange(//tensorflow/compiler/mlir/lite/ir/tfl_op_enums.td) 805*61046927SAndroid Build Coastguard Worker 806*61046927SAndroid Build Coastguard Workertable Conv2DOptions { 807*61046927SAndroid Build Coastguard Worker padding:Padding; 808*61046927SAndroid Build Coastguard Worker stride_w:int; 809*61046927SAndroid Build Coastguard Worker stride_h:int; 810*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 811*61046927SAndroid Build Coastguard Worker dilation_w_factor:int = 1; 812*61046927SAndroid Build Coastguard Worker dilation_h_factor:int = 1; 813*61046927SAndroid Build Coastguard Worker // Parameters for Conv2D version 8 or above. 814*61046927SAndroid Build Coastguard Worker // When set, quantized_bias_type defines the dtype for both bias and accumulator. 815*61046927SAndroid Build Coastguard Worker quantized_bias_type: TensorType; 816*61046927SAndroid Build Coastguard Worker} 817*61046927SAndroid Build Coastguard Worker 818*61046927SAndroid Build Coastguard Worker// Options for both Conv3D and Conv3DTranspose. 819*61046927SAndroid Build Coastguard Workertable Conv3DOptions { 820*61046927SAndroid Build Coastguard Worker padding:Padding; 821*61046927SAndroid Build Coastguard Worker stride_d:int; 822*61046927SAndroid Build Coastguard Worker stride_w:int; 823*61046927SAndroid Build Coastguard Worker stride_h:int; 824*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 825*61046927SAndroid Build Coastguard Worker dilation_d_factor:int = 1; 826*61046927SAndroid Build Coastguard Worker dilation_w_factor:int = 1; 827*61046927SAndroid Build Coastguard Worker dilation_h_factor:int = 1; 828*61046927SAndroid Build Coastguard Worker} 829*61046927SAndroid Build Coastguard Worker 830*61046927SAndroid Build Coastguard Workertable Pool2DOptions { 831*61046927SAndroid Build Coastguard Worker padding:Padding; 832*61046927SAndroid Build Coastguard Worker stride_w:int; 833*61046927SAndroid Build Coastguard Worker stride_h:int; 834*61046927SAndroid Build Coastguard Worker filter_width:int; 835*61046927SAndroid Build Coastguard Worker filter_height:int; 836*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 837*61046927SAndroid Build Coastguard Worker} 838*61046927SAndroid Build Coastguard Worker 839*61046927SAndroid Build Coastguard Workertable DepthwiseConv2DOptions { 840*61046927SAndroid Build Coastguard Worker // Parameters for DepthwiseConv version 1 or above. 841*61046927SAndroid Build Coastguard Worker padding:Padding; 842*61046927SAndroid Build Coastguard Worker stride_w:int; 843*61046927SAndroid Build Coastguard Worker stride_h:int; 844*61046927SAndroid Build Coastguard Worker // `depth_multiplier` is redundant. It's used by CPU kernels in 845*61046927SAndroid Build Coastguard Worker // TensorFlow 2.0 or below, but ignored in versions above. 846*61046927SAndroid Build Coastguard Worker // See comments in lite/c/builtin_op_data.h for more details. 847*61046927SAndroid Build Coastguard Worker depth_multiplier:int; 848*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 849*61046927SAndroid Build Coastguard Worker // Parameters for DepthwiseConv version 2 or above. 850*61046927SAndroid Build Coastguard Worker dilation_w_factor:int = 1; 851*61046927SAndroid Build Coastguard Worker dilation_h_factor:int = 1; 852*61046927SAndroid Build Coastguard Worker} 853*61046927SAndroid Build Coastguard Worker 854*61046927SAndroid Build Coastguard Workertable ConcatEmbeddingsOptions { 855*61046927SAndroid Build Coastguard Worker num_channels:int; 856*61046927SAndroid Build Coastguard Worker num_columns_per_channel:[int]; 857*61046927SAndroid Build Coastguard Worker embedding_dim_per_channel:[int]; // This could be inferred from parameters. 858*61046927SAndroid Build Coastguard Worker} 859*61046927SAndroid Build Coastguard Worker 860*61046927SAndroid Build Coastguard Workerenum LSHProjectionType: byte { 861*61046927SAndroid Build Coastguard Worker UNKNOWN = 0, 862*61046927SAndroid Build Coastguard Worker SPARSE = 1, 863*61046927SAndroid Build Coastguard Worker DENSE = 2, 864*61046927SAndroid Build Coastguard Worker} 865*61046927SAndroid Build Coastguard Worker 866*61046927SAndroid Build Coastguard Workertable LSHProjectionOptions { 867*61046927SAndroid Build Coastguard Worker type: LSHProjectionType; 868*61046927SAndroid Build Coastguard Worker} 869*61046927SAndroid Build Coastguard Worker 870*61046927SAndroid Build Coastguard Workertable SVDFOptions { 871*61046927SAndroid Build Coastguard Worker rank:int; 872*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 873*61046927SAndroid Build Coastguard Worker // For weights-only quantization, use asymmetric quantization for non 874*61046927SAndroid Build Coastguard Worker // constant inputs at evaluation time. 875*61046927SAndroid Build Coastguard Worker asymmetric_quantize_inputs:bool; 876*61046927SAndroid Build Coastguard Worker} 877*61046927SAndroid Build Coastguard Worker 878*61046927SAndroid Build Coastguard Worker// An implementation of TensorFlow RNNCell. 879*61046927SAndroid Build Coastguard Workertable RNNOptions { 880*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 881*61046927SAndroid Build Coastguard Worker asymmetric_quantize_inputs:bool; 882*61046927SAndroid Build Coastguard Worker} 883*61046927SAndroid Build Coastguard Worker 884*61046927SAndroid Build Coastguard Worker// An implementation of TensorFlow dynamic_rnn with RNNCell. 885*61046927SAndroid Build Coastguard Workertable SequenceRNNOptions { 886*61046927SAndroid Build Coastguard Worker time_major:bool; 887*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 888*61046927SAndroid Build Coastguard Worker asymmetric_quantize_inputs:bool; 889*61046927SAndroid Build Coastguard Worker} 890*61046927SAndroid Build Coastguard Worker 891*61046927SAndroid Build Coastguard Worker// An implementation of TensorFlow bidrectional_dynamic_rnn with RNNCell. 892*61046927SAndroid Build Coastguard Workertable BidirectionalSequenceRNNOptions { 893*61046927SAndroid Build Coastguard Worker time_major:bool; 894*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 895*61046927SAndroid Build Coastguard Worker merge_outputs: bool; 896*61046927SAndroid Build Coastguard Worker asymmetric_quantize_inputs:bool; 897*61046927SAndroid Build Coastguard Worker} 898*61046927SAndroid Build Coastguard Worker 899*61046927SAndroid Build Coastguard Worker// LINT.IfChange 900*61046927SAndroid Build Coastguard Workerenum FullyConnectedOptionsWeightsFormat: byte { 901*61046927SAndroid Build Coastguard Worker DEFAULT = 0, 902*61046927SAndroid Build Coastguard Worker SHUFFLED4x16INT8 = 1, 903*61046927SAndroid Build Coastguard Worker} 904*61046927SAndroid Build Coastguard Worker// LINT.ThenChange(//tensorflow/compiler/mlir/lite/ir/tfl_op_enums.td) 905*61046927SAndroid Build Coastguard Worker 906*61046927SAndroid Build Coastguard Worker// An implementation of TensorFlow fully_connected (a.k.a Dense) layer. 907*61046927SAndroid Build Coastguard Workertable FullyConnectedOptions { 908*61046927SAndroid Build Coastguard Worker // Parameters for FullyConnected version 1 or above. 909*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 910*61046927SAndroid Build Coastguard Worker 911*61046927SAndroid Build Coastguard Worker // Parameters for FullyConnected version 2 or above. 912*61046927SAndroid Build Coastguard Worker weights_format:FullyConnectedOptionsWeightsFormat = DEFAULT; 913*61046927SAndroid Build Coastguard Worker 914*61046927SAndroid Build Coastguard Worker // Parameters for FullyConnected version 5 or above. 915*61046927SAndroid Build Coastguard Worker // If set to true, then the number of dimension is preserved. Furthermore, 916*61046927SAndroid Build Coastguard Worker // all but the last dimension of the input and output shapes will be equal. 917*61046927SAndroid Build Coastguard Worker keep_num_dims: bool; 918*61046927SAndroid Build Coastguard Worker 919*61046927SAndroid Build Coastguard Worker // Parameters for FullyConnected version 7 or above. 920*61046927SAndroid Build Coastguard Worker // If set to true, then weights-only op will use asymmetric quantization for 921*61046927SAndroid Build Coastguard Worker // inputs. 922*61046927SAndroid Build Coastguard Worker asymmetric_quantize_inputs: bool; 923*61046927SAndroid Build Coastguard Worker 924*61046927SAndroid Build Coastguard Worker // Parameters for FullyConnected version 11 or above. 925*61046927SAndroid Build Coastguard Worker // When set, quantized_bias_type defines the dtype for both bias and accumulator. 926*61046927SAndroid Build Coastguard Worker quantized_bias_type: TensorType; 927*61046927SAndroid Build Coastguard Worker} 928*61046927SAndroid Build Coastguard Worker 929*61046927SAndroid Build Coastguard Workertable SoftmaxOptions { 930*61046927SAndroid Build Coastguard Worker beta: float; 931*61046927SAndroid Build Coastguard Worker} 932*61046927SAndroid Build Coastguard Worker 933*61046927SAndroid Build Coastguard Worker// An implementation of TensorFlow concat. 934*61046927SAndroid Build Coastguard Workertable ConcatenationOptions { 935*61046927SAndroid Build Coastguard Worker axis:int; 936*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 937*61046927SAndroid Build Coastguard Worker} 938*61046927SAndroid Build Coastguard Worker 939*61046927SAndroid Build Coastguard Workertable AddOptions { 940*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 941*61046927SAndroid Build Coastguard Worker // Parameters supported by version 3. 942*61046927SAndroid Build Coastguard Worker pot_scale_int16:bool = true; 943*61046927SAndroid Build Coastguard Worker} 944*61046927SAndroid Build Coastguard Worker 945*61046927SAndroid Build Coastguard Workertable MulOptions { 946*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 947*61046927SAndroid Build Coastguard Worker} 948*61046927SAndroid Build Coastguard Worker 949*61046927SAndroid Build Coastguard Workertable L2NormOptions { 950*61046927SAndroid Build Coastguard Worker // This field is currently ignored in the L2 Norm Op. 951*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 952*61046927SAndroid Build Coastguard Worker} 953*61046927SAndroid Build Coastguard Worker 954*61046927SAndroid Build Coastguard Workertable LocalResponseNormalizationOptions { 955*61046927SAndroid Build Coastguard Worker radius:int; 956*61046927SAndroid Build Coastguard Worker bias:float; 957*61046927SAndroid Build Coastguard Worker alpha:float; 958*61046927SAndroid Build Coastguard Worker beta:float; 959*61046927SAndroid Build Coastguard Worker} 960*61046927SAndroid Build Coastguard Worker 961*61046927SAndroid Build Coastguard Worker// LINT.IfChange 962*61046927SAndroid Build Coastguard Workerenum LSTMKernelType : byte { 963*61046927SAndroid Build Coastguard Worker // Full LSTM kernel which supports peephole and projection. 964*61046927SAndroid Build Coastguard Worker FULL = 0, 965*61046927SAndroid Build Coastguard Worker // Basic LSTM kernels. Equivalent to TensorFlow BasicLSTMCell. 966*61046927SAndroid Build Coastguard Worker BASIC = 1, 967*61046927SAndroid Build Coastguard Worker} 968*61046927SAndroid Build Coastguard Worker// LINT.ThenChange(//tensorflow/compiler/mlir/lite/ir/tfl_op_enums.td) 969*61046927SAndroid Build Coastguard Worker 970*61046927SAndroid Build Coastguard Worker// An implementation of TensorFlow LSTMCell and CoupledInputForgetGateLSTMCell 971*61046927SAndroid Build Coastguard Workertable LSTMOptions { 972*61046927SAndroid Build Coastguard Worker // Parameters for LSTM version 1 or above. 973*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 974*61046927SAndroid Build Coastguard Worker cell_clip: float; // Optional, 0.0 means no clipping 975*61046927SAndroid Build Coastguard Worker proj_clip: float; // Optional, 0.0 means no clipping 976*61046927SAndroid Build Coastguard Worker 977*61046927SAndroid Build Coastguard Worker // Parameters for LSTM version 2 or above. 978*61046927SAndroid Build Coastguard Worker // Basic kernel is only supported in version 2 or above. 979*61046927SAndroid Build Coastguard Worker kernel_type: LSTMKernelType = FULL; 980*61046927SAndroid Build Coastguard Worker 981*61046927SAndroid Build Coastguard Worker // Parameters for LSTM version 4 or above. 982*61046927SAndroid Build Coastguard Worker asymmetric_quantize_inputs: bool; 983*61046927SAndroid Build Coastguard Worker} 984*61046927SAndroid Build Coastguard Worker 985*61046927SAndroid Build Coastguard Worker// An implementation of TensorFlow dynamic_rnn with LSTMCell. 986*61046927SAndroid Build Coastguard Workertable UnidirectionalSequenceLSTMOptions { 987*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 988*61046927SAndroid Build Coastguard Worker cell_clip: float; // Optional, 0.0 means no clipping 989*61046927SAndroid Build Coastguard Worker proj_clip: float; // Optional, 0.0 means no clipping 990*61046927SAndroid Build Coastguard Worker 991*61046927SAndroid Build Coastguard Worker // If true then first dimension is sequence, otherwise batch. 992*61046927SAndroid Build Coastguard Worker time_major:bool; 993*61046927SAndroid Build Coastguard Worker 994*61046927SAndroid Build Coastguard Worker // Parameter for Unidirectional Sequence LSTM version 3. 995*61046927SAndroid Build Coastguard Worker asymmetric_quantize_inputs:bool; 996*61046927SAndroid Build Coastguard Worker 997*61046927SAndroid Build Coastguard Worker // Parameter for unidirectional sequence RNN version 4. 998*61046927SAndroid Build Coastguard Worker diagonal_recurrent_tensors:bool; 999*61046927SAndroid Build Coastguard Worker} 1000*61046927SAndroid Build Coastguard Worker 1001*61046927SAndroid Build Coastguard Workertable BidirectionalSequenceLSTMOptions { 1002*61046927SAndroid Build Coastguard Worker // Parameters supported by version 1: 1003*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 1004*61046927SAndroid Build Coastguard Worker cell_clip: float; // Optional, 0.0 means no clipping 1005*61046927SAndroid Build Coastguard Worker proj_clip: float; // Optional, 0.0 means no clipping 1006*61046927SAndroid Build Coastguard Worker 1007*61046927SAndroid Build Coastguard Worker // If true, store the outputs of both directions into the first output. 1008*61046927SAndroid Build Coastguard Worker merge_outputs: bool; 1009*61046927SAndroid Build Coastguard Worker 1010*61046927SAndroid Build Coastguard Worker // Parameters supported by version 2: 1011*61046927SAndroid Build Coastguard Worker // If true then first dimension is sequence, otherwise batch. 1012*61046927SAndroid Build Coastguard Worker // Version 1 implementations assumed time_major to be true, so this default 1013*61046927SAndroid Build Coastguard Worker // value should never change. 1014*61046927SAndroid Build Coastguard Worker time_major: bool = true; 1015*61046927SAndroid Build Coastguard Worker 1016*61046927SAndroid Build Coastguard Worker // Parameters for version 3 or above. 1017*61046927SAndroid Build Coastguard Worker asymmetric_quantize_inputs:bool; 1018*61046927SAndroid Build Coastguard Worker} 1019*61046927SAndroid Build Coastguard Worker 1020*61046927SAndroid Build Coastguard Workertable ResizeBilinearOptions { 1021*61046927SAndroid Build Coastguard Worker new_height: int (deprecated); 1022*61046927SAndroid Build Coastguard Worker new_width: int (deprecated); 1023*61046927SAndroid Build Coastguard Worker align_corners: bool; 1024*61046927SAndroid Build Coastguard Worker half_pixel_centers: bool; 1025*61046927SAndroid Build Coastguard Worker} 1026*61046927SAndroid Build Coastguard Worker 1027*61046927SAndroid Build Coastguard Workertable ResizeNearestNeighborOptions { 1028*61046927SAndroid Build Coastguard Worker align_corners: bool; 1029*61046927SAndroid Build Coastguard Worker half_pixel_centers: bool; 1030*61046927SAndroid Build Coastguard Worker} 1031*61046927SAndroid Build Coastguard Worker 1032*61046927SAndroid Build Coastguard Worker// A call operation options 1033*61046927SAndroid Build Coastguard Workertable CallOptions { 1034*61046927SAndroid Build Coastguard Worker // The subgraph index that needs to be called. 1035*61046927SAndroid Build Coastguard Worker subgraph:uint; 1036*61046927SAndroid Build Coastguard Worker} 1037*61046927SAndroid Build Coastguard Worker 1038*61046927SAndroid Build Coastguard Workertable PadOptions { 1039*61046927SAndroid Build Coastguard Worker} 1040*61046927SAndroid Build Coastguard Worker 1041*61046927SAndroid Build Coastguard Workertable PadV2Options { 1042*61046927SAndroid Build Coastguard Worker} 1043*61046927SAndroid Build Coastguard Worker 1044*61046927SAndroid Build Coastguard Workertable ReshapeOptions { 1045*61046927SAndroid Build Coastguard Worker new_shape:[int]; 1046*61046927SAndroid Build Coastguard Worker} 1047*61046927SAndroid Build Coastguard Worker 1048*61046927SAndroid Build Coastguard Workertable SpaceToBatchNDOptions { 1049*61046927SAndroid Build Coastguard Worker} 1050*61046927SAndroid Build Coastguard Worker 1051*61046927SAndroid Build Coastguard Workertable BatchToSpaceNDOptions { 1052*61046927SAndroid Build Coastguard Worker} 1053*61046927SAndroid Build Coastguard Worker 1054*61046927SAndroid Build Coastguard Workertable SkipGramOptions { 1055*61046927SAndroid Build Coastguard Worker ngram_size: int; 1056*61046927SAndroid Build Coastguard Worker max_skip_size: int; 1057*61046927SAndroid Build Coastguard Worker include_all_ngrams: bool; 1058*61046927SAndroid Build Coastguard Worker} 1059*61046927SAndroid Build Coastguard Worker 1060*61046927SAndroid Build Coastguard Workertable SpaceToDepthOptions { 1061*61046927SAndroid Build Coastguard Worker block_size: int; 1062*61046927SAndroid Build Coastguard Worker} 1063*61046927SAndroid Build Coastguard Worker 1064*61046927SAndroid Build Coastguard Workertable DepthToSpaceOptions { 1065*61046927SAndroid Build Coastguard Worker block_size: int; 1066*61046927SAndroid Build Coastguard Worker} 1067*61046927SAndroid Build Coastguard Worker 1068*61046927SAndroid Build Coastguard Workertable SubOptions { 1069*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 1070*61046927SAndroid Build Coastguard Worker // Parameters supported by version 5 1071*61046927SAndroid Build Coastguard Worker pot_scale_int16:bool = true; 1072*61046927SAndroid Build Coastguard Worker} 1073*61046927SAndroid Build Coastguard Worker 1074*61046927SAndroid Build Coastguard Workertable DivOptions { 1075*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType; 1076*61046927SAndroid Build Coastguard Worker} 1077*61046927SAndroid Build Coastguard Worker 1078*61046927SAndroid Build Coastguard Workertable TopKV2Options { 1079*61046927SAndroid Build Coastguard Worker} 1080*61046927SAndroid Build Coastguard Worker 1081*61046927SAndroid Build Coastguard Workerenum CombinerType : byte { 1082*61046927SAndroid Build Coastguard Worker SUM = 0, 1083*61046927SAndroid Build Coastguard Worker MEAN = 1, 1084*61046927SAndroid Build Coastguard Worker SQRTN = 2, 1085*61046927SAndroid Build Coastguard Worker} 1086*61046927SAndroid Build Coastguard Worker 1087*61046927SAndroid Build Coastguard Workertable EmbeddingLookupSparseOptions { 1088*61046927SAndroid Build Coastguard Worker combiner:CombinerType; 1089*61046927SAndroid Build Coastguard Worker} 1090*61046927SAndroid Build Coastguard Worker 1091*61046927SAndroid Build Coastguard Workertable GatherOptions { 1092*61046927SAndroid Build Coastguard Worker axis: int; 1093*61046927SAndroid Build Coastguard Worker // Parameters for Gather version 5 or above. 1094*61046927SAndroid Build Coastguard Worker batch_dims: int = 0; 1095*61046927SAndroid Build Coastguard Worker} 1096*61046927SAndroid Build Coastguard Worker 1097*61046927SAndroid Build Coastguard Workertable TransposeOptions { 1098*61046927SAndroid Build Coastguard Worker} 1099*61046927SAndroid Build Coastguard Worker 1100*61046927SAndroid Build Coastguard Workertable ExpOptions { 1101*61046927SAndroid Build Coastguard Worker} 1102*61046927SAndroid Build Coastguard Worker 1103*61046927SAndroid Build Coastguard Workertable CosOptions { 1104*61046927SAndroid Build Coastguard Worker} 1105*61046927SAndroid Build Coastguard Worker 1106*61046927SAndroid Build Coastguard Workertable ReducerOptions { 1107*61046927SAndroid Build Coastguard Worker keep_dims: bool; 1108*61046927SAndroid Build Coastguard Worker} 1109*61046927SAndroid Build Coastguard Worker 1110*61046927SAndroid Build Coastguard Workertable SqueezeOptions { 1111*61046927SAndroid Build Coastguard Worker squeeze_dims:[int]; 1112*61046927SAndroid Build Coastguard Worker} 1113*61046927SAndroid Build Coastguard Worker 1114*61046927SAndroid Build Coastguard Workertable SplitOptions { 1115*61046927SAndroid Build Coastguard Worker num_splits: int; 1116*61046927SAndroid Build Coastguard Worker} 1117*61046927SAndroid Build Coastguard Worker 1118*61046927SAndroid Build Coastguard Workertable SplitVOptions { 1119*61046927SAndroid Build Coastguard Worker num_splits: int; 1120*61046927SAndroid Build Coastguard Worker} 1121*61046927SAndroid Build Coastguard Worker 1122*61046927SAndroid Build Coastguard Workertable StridedSliceOptions { 1123*61046927SAndroid Build Coastguard Worker begin_mask: int; 1124*61046927SAndroid Build Coastguard Worker end_mask: int; 1125*61046927SAndroid Build Coastguard Worker ellipsis_mask: int; 1126*61046927SAndroid Build Coastguard Worker new_axis_mask: int; 1127*61046927SAndroid Build Coastguard Worker shrink_axis_mask: int; 1128*61046927SAndroid Build Coastguard Worker // If true, then the end tensor is an offset of the begin tensor. 1129*61046927SAndroid Build Coastguard Worker offset: bool; 1130*61046927SAndroid Build Coastguard Worker} 1131*61046927SAndroid Build Coastguard Worker 1132*61046927SAndroid Build Coastguard Workertable LogSoftmaxOptions { 1133*61046927SAndroid Build Coastguard Worker} 1134*61046927SAndroid Build Coastguard Worker 1135*61046927SAndroid Build Coastguard Workertable CastOptions { 1136*61046927SAndroid Build Coastguard Worker in_data_type: TensorType; 1137*61046927SAndroid Build Coastguard Worker out_data_type: TensorType; 1138*61046927SAndroid Build Coastguard Worker} 1139*61046927SAndroid Build Coastguard Worker 1140*61046927SAndroid Build Coastguard Workertable DequantizeOptions { 1141*61046927SAndroid Build Coastguard Worker} 1142*61046927SAndroid Build Coastguard Worker 1143*61046927SAndroid Build Coastguard Workertable MaximumMinimumOptions { 1144*61046927SAndroid Build Coastguard Worker} 1145*61046927SAndroid Build Coastguard Worker 1146*61046927SAndroid Build Coastguard Workertable TileOptions { 1147*61046927SAndroid Build Coastguard Worker} 1148*61046927SAndroid Build Coastguard Worker 1149*61046927SAndroid Build Coastguard Workertable ArgMaxOptions { 1150*61046927SAndroid Build Coastguard Worker output_type : TensorType; 1151*61046927SAndroid Build Coastguard Worker} 1152*61046927SAndroid Build Coastguard Worker 1153*61046927SAndroid Build Coastguard Workertable ArgMinOptions { 1154*61046927SAndroid Build Coastguard Worker output_type : TensorType; 1155*61046927SAndroid Build Coastguard Worker} 1156*61046927SAndroid Build Coastguard Worker 1157*61046927SAndroid Build Coastguard Workertable GreaterOptions { 1158*61046927SAndroid Build Coastguard Worker} 1159*61046927SAndroid Build Coastguard Worker 1160*61046927SAndroid Build Coastguard Workertable GreaterEqualOptions { 1161*61046927SAndroid Build Coastguard Worker} 1162*61046927SAndroid Build Coastguard Worker 1163*61046927SAndroid Build Coastguard Workertable LessOptions { 1164*61046927SAndroid Build Coastguard Worker} 1165*61046927SAndroid Build Coastguard Worker 1166*61046927SAndroid Build Coastguard Workertable LessEqualOptions { 1167*61046927SAndroid Build Coastguard Worker} 1168*61046927SAndroid Build Coastguard Worker 1169*61046927SAndroid Build Coastguard Workertable NegOptions { 1170*61046927SAndroid Build Coastguard Worker} 1171*61046927SAndroid Build Coastguard Worker 1172*61046927SAndroid Build Coastguard Workertable SelectOptions { 1173*61046927SAndroid Build Coastguard Worker} 1174*61046927SAndroid Build Coastguard Worker 1175*61046927SAndroid Build Coastguard Workertable SliceOptions { 1176*61046927SAndroid Build Coastguard Worker} 1177*61046927SAndroid Build Coastguard Worker 1178*61046927SAndroid Build Coastguard Workertable TransposeConvOptions { 1179*61046927SAndroid Build Coastguard Worker // Parameters supported by version 1, 2, 3: 1180*61046927SAndroid Build Coastguard Worker padding:Padding; 1181*61046927SAndroid Build Coastguard Worker stride_w:int; 1182*61046927SAndroid Build Coastguard Worker stride_h:int; 1183*61046927SAndroid Build Coastguard Worker 1184*61046927SAndroid Build Coastguard Worker // Parameters supported by version 4: 1185*61046927SAndroid Build Coastguard Worker fused_activation_function:ActivationFunctionType = NONE; 1186*61046927SAndroid Build Coastguard Worker 1187*61046927SAndroid Build Coastguard Worker // Parameters for TransposeConv version 5 or above. 1188*61046927SAndroid Build Coastguard Worker // If set, use this for bias and accumulator. 1189*61046927SAndroid Build Coastguard Worker // When set, quantized_bias_type defines the dtype for both bias and accumulator. 1190*61046927SAndroid Build Coastguard Worker quantized_bias_type: TensorType; 1191*61046927SAndroid Build Coastguard Worker} 1192*61046927SAndroid Build Coastguard Worker 1193*61046927SAndroid Build Coastguard Workertable ExpandDimsOptions { 1194*61046927SAndroid Build Coastguard Worker} 1195*61046927SAndroid Build Coastguard Worker 1196*61046927SAndroid Build Coastguard Workertable SparseToDenseOptions { 1197*61046927SAndroid Build Coastguard Worker validate_indices:bool; 1198*61046927SAndroid Build Coastguard Worker} 1199*61046927SAndroid Build Coastguard Worker 1200*61046927SAndroid Build Coastguard Workertable EqualOptions { 1201*61046927SAndroid Build Coastguard Worker} 1202*61046927SAndroid Build Coastguard Worker 1203*61046927SAndroid Build Coastguard Workertable NotEqualOptions { 1204*61046927SAndroid Build Coastguard Worker} 1205*61046927SAndroid Build Coastguard Worker 1206*61046927SAndroid Build Coastguard Workertable ShapeOptions { 1207*61046927SAndroid Build Coastguard Worker // Optional output type of the operation (int32 or int64). Defaults to int32. 1208*61046927SAndroid Build Coastguard Worker out_type : TensorType; 1209*61046927SAndroid Build Coastguard Worker} 1210*61046927SAndroid Build Coastguard Worker 1211*61046927SAndroid Build Coastguard Workertable RankOptions { 1212*61046927SAndroid Build Coastguard Worker} 1213*61046927SAndroid Build Coastguard Worker 1214*61046927SAndroid Build Coastguard Workertable PowOptions { 1215*61046927SAndroid Build Coastguard Worker} 1216*61046927SAndroid Build Coastguard Worker 1217*61046927SAndroid Build Coastguard Workertable FakeQuantOptions { 1218*61046927SAndroid Build Coastguard Worker // Parameters supported by version 1: 1219*61046927SAndroid Build Coastguard Worker min:float; 1220*61046927SAndroid Build Coastguard Worker max:float; 1221*61046927SAndroid Build Coastguard Worker num_bits:int; 1222*61046927SAndroid Build Coastguard Worker 1223*61046927SAndroid Build Coastguard Worker // Parameters supported by version 2: 1224*61046927SAndroid Build Coastguard Worker narrow_range:bool; 1225*61046927SAndroid Build Coastguard Worker} 1226*61046927SAndroid Build Coastguard Worker 1227*61046927SAndroid Build Coastguard Workertable PackOptions { 1228*61046927SAndroid Build Coastguard Worker values_count:int; 1229*61046927SAndroid Build Coastguard Worker axis:int; 1230*61046927SAndroid Build Coastguard Worker} 1231*61046927SAndroid Build Coastguard Worker 1232*61046927SAndroid Build Coastguard Workertable LogicalOrOptions { 1233*61046927SAndroid Build Coastguard Worker} 1234*61046927SAndroid Build Coastguard Worker 1235*61046927SAndroid Build Coastguard Workertable OneHotOptions { 1236*61046927SAndroid Build Coastguard Worker axis:int; 1237*61046927SAndroid Build Coastguard Worker} 1238*61046927SAndroid Build Coastguard Worker 1239*61046927SAndroid Build Coastguard Workertable AbsOptions { 1240*61046927SAndroid Build Coastguard Worker} 1241*61046927SAndroid Build Coastguard Worker 1242*61046927SAndroid Build Coastguard Worker 1243*61046927SAndroid Build Coastguard Workertable HardSwishOptions { 1244*61046927SAndroid Build Coastguard Worker} 1245*61046927SAndroid Build Coastguard Worker 1246*61046927SAndroid Build Coastguard Workertable LogicalAndOptions { 1247*61046927SAndroid Build Coastguard Worker} 1248*61046927SAndroid Build Coastguard Worker 1249*61046927SAndroid Build Coastguard Workertable LogicalNotOptions { 1250*61046927SAndroid Build Coastguard Worker} 1251*61046927SAndroid Build Coastguard Worker 1252*61046927SAndroid Build Coastguard Workertable UnpackOptions { 1253*61046927SAndroid Build Coastguard Worker num:int; 1254*61046927SAndroid Build Coastguard Worker axis:int; 1255*61046927SAndroid Build Coastguard Worker} 1256*61046927SAndroid Build Coastguard Worker 1257*61046927SAndroid Build Coastguard Workertable FloorDivOptions { 1258*61046927SAndroid Build Coastguard Worker} 1259*61046927SAndroid Build Coastguard Worker 1260*61046927SAndroid Build Coastguard Workertable SquareOptions { 1261*61046927SAndroid Build Coastguard Worker} 1262*61046927SAndroid Build Coastguard Worker 1263*61046927SAndroid Build Coastguard Workertable ZerosLikeOptions { 1264*61046927SAndroid Build Coastguard Worker} 1265*61046927SAndroid Build Coastguard Worker 1266*61046927SAndroid Build Coastguard Workertable FillOptions { 1267*61046927SAndroid Build Coastguard Worker} 1268*61046927SAndroid Build Coastguard Worker 1269*61046927SAndroid Build Coastguard Workertable FloorModOptions { 1270*61046927SAndroid Build Coastguard Worker} 1271*61046927SAndroid Build Coastguard Worker 1272*61046927SAndroid Build Coastguard Workertable RangeOptions { 1273*61046927SAndroid Build Coastguard Worker} 1274*61046927SAndroid Build Coastguard Worker 1275*61046927SAndroid Build Coastguard Workertable LeakyReluOptions { 1276*61046927SAndroid Build Coastguard Worker alpha:float; 1277*61046927SAndroid Build Coastguard Worker} 1278*61046927SAndroid Build Coastguard Worker 1279*61046927SAndroid Build Coastguard Workertable SquaredDifferenceOptions { 1280*61046927SAndroid Build Coastguard Worker} 1281*61046927SAndroid Build Coastguard Worker 1282*61046927SAndroid Build Coastguard Worker// LINT.IfChange 1283*61046927SAndroid Build Coastguard Workerenum MirrorPadMode : byte { 1284*61046927SAndroid Build Coastguard Worker // Doesn't include borders. 1285*61046927SAndroid Build Coastguard Worker REFLECT = 0, 1286*61046927SAndroid Build Coastguard Worker // Includes borders. 1287*61046927SAndroid Build Coastguard Worker SYMMETRIC = 1, 1288*61046927SAndroid Build Coastguard Worker} 1289*61046927SAndroid Build Coastguard Worker// LINT.ThenChange(//tensorflow/compiler/mlir/lite/ir/tfl_op_enums.td) 1290*61046927SAndroid Build Coastguard Worker 1291*61046927SAndroid Build Coastguard Workertable MirrorPadOptions { 1292*61046927SAndroid Build Coastguard Worker mode:MirrorPadMode; 1293*61046927SAndroid Build Coastguard Worker} 1294*61046927SAndroid Build Coastguard Worker 1295*61046927SAndroid Build Coastguard Workertable UniqueOptions { 1296*61046927SAndroid Build Coastguard Worker idx_out_type:TensorType = INT32; 1297*61046927SAndroid Build Coastguard Worker} 1298*61046927SAndroid Build Coastguard Worker 1299*61046927SAndroid Build Coastguard Workertable ReverseV2Options { 1300*61046927SAndroid Build Coastguard Worker} 1301*61046927SAndroid Build Coastguard Worker 1302*61046927SAndroid Build Coastguard Workertable AddNOptions { 1303*61046927SAndroid Build Coastguard Worker} 1304*61046927SAndroid Build Coastguard Worker 1305*61046927SAndroid Build Coastguard Workertable GatherNdOptions { 1306*61046927SAndroid Build Coastguard Worker} 1307*61046927SAndroid Build Coastguard Worker 1308*61046927SAndroid Build Coastguard Workertable WhereOptions { 1309*61046927SAndroid Build Coastguard Worker} 1310*61046927SAndroid Build Coastguard Worker 1311*61046927SAndroid Build Coastguard Workertable ReverseSequenceOptions { 1312*61046927SAndroid Build Coastguard Worker seq_dim:int; 1313*61046927SAndroid Build Coastguard Worker batch_dim:int = 0; 1314*61046927SAndroid Build Coastguard Worker} 1315*61046927SAndroid Build Coastguard Worker 1316*61046927SAndroid Build Coastguard Workertable MatrixDiagOptions { 1317*61046927SAndroid Build Coastguard Worker} 1318*61046927SAndroid Build Coastguard Worker 1319*61046927SAndroid Build Coastguard Workertable QuantizeOptions { 1320*61046927SAndroid Build Coastguard Worker} 1321*61046927SAndroid Build Coastguard Worker 1322*61046927SAndroid Build Coastguard Workertable MatrixSetDiagOptions { 1323*61046927SAndroid Build Coastguard Worker} 1324*61046927SAndroid Build Coastguard Worker 1325*61046927SAndroid Build Coastguard Workertable IfOptions { 1326*61046927SAndroid Build Coastguard Worker then_subgraph_index:int; 1327*61046927SAndroid Build Coastguard Worker else_subgraph_index:int; 1328*61046927SAndroid Build Coastguard Worker} 1329*61046927SAndroid Build Coastguard Worker 1330*61046927SAndroid Build Coastguard Workertable CallOnceOptions { 1331*61046927SAndroid Build Coastguard Worker init_subgraph_index:int; 1332*61046927SAndroid Build Coastguard Worker} 1333*61046927SAndroid Build Coastguard Worker 1334*61046927SAndroid Build Coastguard Workertable WhileOptions { 1335*61046927SAndroid Build Coastguard Worker cond_subgraph_index:int; 1336*61046927SAndroid Build Coastguard Worker body_subgraph_index:int; 1337*61046927SAndroid Build Coastguard Worker} 1338*61046927SAndroid Build Coastguard Worker 1339*61046927SAndroid Build Coastguard Workertable NonMaxSuppressionV4Options { 1340*61046927SAndroid Build Coastguard Worker} 1341*61046927SAndroid Build Coastguard Worker 1342*61046927SAndroid Build Coastguard Workertable NonMaxSuppressionV5Options { 1343*61046927SAndroid Build Coastguard Worker} 1344*61046927SAndroid Build Coastguard Worker 1345*61046927SAndroid Build Coastguard Workertable ScatterNdOptions { 1346*61046927SAndroid Build Coastguard Worker} 1347*61046927SAndroid Build Coastguard Worker 1348*61046927SAndroid Build Coastguard Workertable SelectV2Options { 1349*61046927SAndroid Build Coastguard Worker} 1350*61046927SAndroid Build Coastguard Worker 1351*61046927SAndroid Build Coastguard Workertable DensifyOptions { 1352*61046927SAndroid Build Coastguard Worker} 1353*61046927SAndroid Build Coastguard Worker 1354*61046927SAndroid Build Coastguard Workertable SegmentSumOptions { 1355*61046927SAndroid Build Coastguard Worker} 1356*61046927SAndroid Build Coastguard Worker 1357*61046927SAndroid Build Coastguard Workertable BatchMatMulOptions { 1358*61046927SAndroid Build Coastguard Worker adj_x:bool; 1359*61046927SAndroid Build Coastguard Worker adj_y:bool; 1360*61046927SAndroid Build Coastguard Worker // Parameters for BatchMatMul version 4 or above. 1361*61046927SAndroid Build Coastguard Worker // If set to true, then weights-only op will use asymmetric quantization for 1362*61046927SAndroid Build Coastguard Worker // inputs. 1363*61046927SAndroid Build Coastguard Worker asymmetric_quantize_inputs: bool; 1364*61046927SAndroid Build Coastguard Worker} 1365*61046927SAndroid Build Coastguard Worker 1366*61046927SAndroid Build Coastguard Workertable CumsumOptions { 1367*61046927SAndroid Build Coastguard Worker exclusive:bool; 1368*61046927SAndroid Build Coastguard Worker reverse:bool; 1369*61046927SAndroid Build Coastguard Worker} 1370*61046927SAndroid Build Coastguard Worker 1371*61046927SAndroid Build Coastguard Workertable BroadcastToOptions { 1372*61046927SAndroid Build Coastguard Worker} 1373*61046927SAndroid Build Coastguard Worker 1374*61046927SAndroid Build Coastguard Workertable Rfft2dOptions { 1375*61046927SAndroid Build Coastguard Worker} 1376*61046927SAndroid Build Coastguard Worker 1377*61046927SAndroid Build Coastguard Workertable HashtableOptions { 1378*61046927SAndroid Build Coastguard Worker // The identity of hash tables. This identity will be used across different 1379*61046927SAndroid Build Coastguard Worker // subgraphs in the same interpreter instance. 1380*61046927SAndroid Build Coastguard Worker table_id:int; 1381*61046927SAndroid Build Coastguard Worker key_dtype:TensorType; 1382*61046927SAndroid Build Coastguard Worker value_dtype:TensorType; 1383*61046927SAndroid Build Coastguard Worker} 1384*61046927SAndroid Build Coastguard Worker 1385*61046927SAndroid Build Coastguard Workertable HashtableFindOptions { 1386*61046927SAndroid Build Coastguard Worker} 1387*61046927SAndroid Build Coastguard Worker 1388*61046927SAndroid Build Coastguard Workertable HashtableImportOptions { 1389*61046927SAndroid Build Coastguard Worker} 1390*61046927SAndroid Build Coastguard Worker 1391*61046927SAndroid Build Coastguard Workertable HashtableSizeOptions { 1392*61046927SAndroid Build Coastguard Worker} 1393*61046927SAndroid Build Coastguard Worker 1394*61046927SAndroid Build Coastguard Workertable VarHandleOptions { 1395*61046927SAndroid Build Coastguard Worker container:string; 1396*61046927SAndroid Build Coastguard Worker shared_name:string; 1397*61046927SAndroid Build Coastguard Worker} 1398*61046927SAndroid Build Coastguard Worker 1399*61046927SAndroid Build Coastguard Workertable ReadVariableOptions { 1400*61046927SAndroid Build Coastguard Worker} 1401*61046927SAndroid Build Coastguard Worker 1402*61046927SAndroid Build Coastguard Workertable AssignVariableOptions { 1403*61046927SAndroid Build Coastguard Worker} 1404*61046927SAndroid Build Coastguard Worker 1405*61046927SAndroid Build Coastguard Workertable RandomOptions { 1406*61046927SAndroid Build Coastguard Worker seed: long; 1407*61046927SAndroid Build Coastguard Worker seed2: long; 1408*61046927SAndroid Build Coastguard Worker} 1409*61046927SAndroid Build Coastguard Worker 1410*61046927SAndroid Build Coastguard Workertable BucketizeOptions { 1411*61046927SAndroid Build Coastguard Worker boundaries: [float]; // The bucket boundaries. 1412*61046927SAndroid Build Coastguard Worker} 1413*61046927SAndroid Build Coastguard Worker 1414*61046927SAndroid Build Coastguard Workertable GeluOptions { 1415*61046927SAndroid Build Coastguard Worker approximate: bool; 1416*61046927SAndroid Build Coastguard Worker} 1417*61046927SAndroid Build Coastguard Worker 1418*61046927SAndroid Build Coastguard Workertable DynamicUpdateSliceOptions { 1419*61046927SAndroid Build Coastguard Worker} 1420*61046927SAndroid Build Coastguard Worker 1421*61046927SAndroid Build Coastguard Workertable UnsortedSegmentProdOptions { 1422*61046927SAndroid Build Coastguard Worker} 1423*61046927SAndroid Build Coastguard Worker 1424*61046927SAndroid Build Coastguard Workertable UnsortedSegmentMaxOptions { 1425*61046927SAndroid Build Coastguard Worker} 1426*61046927SAndroid Build Coastguard Worker 1427*61046927SAndroid Build Coastguard Workertable UnsortedSegmentSumOptions { 1428*61046927SAndroid Build Coastguard Worker} 1429*61046927SAndroid Build Coastguard Worker 1430*61046927SAndroid Build Coastguard Workertable ATan2Options { 1431*61046927SAndroid Build Coastguard Worker} 1432*61046927SAndroid Build Coastguard Worker 1433*61046927SAndroid Build Coastguard Workertable UnsortedSegmentMinOptions{ 1434*61046927SAndroid Build Coastguard Worker} 1435*61046927SAndroid Build Coastguard Worker 1436*61046927SAndroid Build Coastguard Workertable SignOptions { 1437*61046927SAndroid Build Coastguard Worker} 1438*61046927SAndroid Build Coastguard Worker 1439*61046927SAndroid Build Coastguard Workertable BitcastOptions { 1440*61046927SAndroid Build Coastguard Worker} 1441*61046927SAndroid Build Coastguard Worker 1442*61046927SAndroid Build Coastguard Workertable BitwiseXorOptions { 1443*61046927SAndroid Build Coastguard Worker} 1444*61046927SAndroid Build Coastguard Worker 1445*61046927SAndroid Build Coastguard Workertable RightShiftOptions { 1446*61046927SAndroid Build Coastguard Worker} 1447*61046927SAndroid Build Coastguard Worker 1448*61046927SAndroid Build Coastguard Workertable DilateOptions { 1449*61046927SAndroid Build Coastguard Worker} 1450*61046927SAndroid Build Coastguard Worker 1451*61046927SAndroid Build Coastguard Workerenum ReduceWindowFunction : int { 1452*61046927SAndroid Build Coastguard Worker UNSUPPORTED, 1453*61046927SAndroid Build Coastguard Worker ADD, 1454*61046927SAndroid Build Coastguard Worker MUL, 1455*61046927SAndroid Build Coastguard Worker MINIMUM, 1456*61046927SAndroid Build Coastguard Worker MAXIMUM, 1457*61046927SAndroid Build Coastguard Worker ALL, 1458*61046927SAndroid Build Coastguard Worker ANY, 1459*61046927SAndroid Build Coastguard Worker} 1460*61046927SAndroid Build Coastguard Worker 1461*61046927SAndroid Build Coastguard Workertable ReduceWindowOptions{ 1462*61046927SAndroid Build Coastguard Worker reduce_function: ReduceWindowFunction; 1463*61046927SAndroid Build Coastguard Worker} 1464*61046927SAndroid Build Coastguard Worker 1465*61046927SAndroid Build Coastguard Worker// An OperatorCode can be an enum value (BuiltinOperator) if the operator is a 1466*61046927SAndroid Build Coastguard Worker// builtin, or a string if the operator is custom. 1467*61046927SAndroid Build Coastguard Workertable OperatorCode { 1468*61046927SAndroid Build Coastguard Worker // This field is for backward compatibility. This field will be used when 1469*61046927SAndroid Build Coastguard Worker // the value of the extended builtin_code field has less than 1470*61046927SAndroid Build Coastguard Worker // BulitinOperator_PLACEHOLDER_FOR_GREATER_OP_CODES. 1471*61046927SAndroid Build Coastguard Worker deprecated_builtin_code:byte; 1472*61046927SAndroid Build Coastguard Worker custom_code:string; 1473*61046927SAndroid Build Coastguard Worker 1474*61046927SAndroid Build Coastguard Worker // The version of the operator. The version need to be bumped whenever new 1475*61046927SAndroid Build Coastguard Worker // parameters are introduced into an op. 1476*61046927SAndroid Build Coastguard Worker version:int = 1; 1477*61046927SAndroid Build Coastguard Worker 1478*61046927SAndroid Build Coastguard Worker // This field is introduced for resolving op builtin code shortage problem 1479*61046927SAndroid Build Coastguard Worker // (the original BuiltinOperator enum field was represented as a byte). 1480*61046927SAndroid Build Coastguard Worker // This field will be used when the value of the extended builtin_code field 1481*61046927SAndroid Build Coastguard Worker // has greater than BulitinOperator_PLACEHOLDER_FOR_GREATER_OP_CODES. 1482*61046927SAndroid Build Coastguard Worker builtin_code:BuiltinOperator; 1483*61046927SAndroid Build Coastguard Worker} 1484*61046927SAndroid Build Coastguard Worker 1485*61046927SAndroid Build Coastguard Workerenum CustomOptionsFormat : byte { 1486*61046927SAndroid Build Coastguard Worker FLEXBUFFERS = 0, 1487*61046927SAndroid Build Coastguard Worker} 1488*61046927SAndroid Build Coastguard Worker 1489*61046927SAndroid Build Coastguard Worker// An operator takes tensors as inputs and outputs. The type of operation being 1490*61046927SAndroid Build Coastguard Worker// performed is determined by an index into the list of valid OperatorCodes, 1491*61046927SAndroid Build Coastguard Worker// while the specifics of each operations is configured using builtin_options 1492*61046927SAndroid Build Coastguard Worker// or custom_options. 1493*61046927SAndroid Build Coastguard Workertable Operator { 1494*61046927SAndroid Build Coastguard Worker // Index into the operator_codes array. Using an integer here avoids 1495*61046927SAndroid Build Coastguard Worker // complicate map lookups. 1496*61046927SAndroid Build Coastguard Worker opcode_index:uint; 1497*61046927SAndroid Build Coastguard Worker 1498*61046927SAndroid Build Coastguard Worker // Optional input are indicated by -1. 1499*61046927SAndroid Build Coastguard Worker inputs:[int]; 1500*61046927SAndroid Build Coastguard Worker outputs:[int]; 1501*61046927SAndroid Build Coastguard Worker 1502*61046927SAndroid Build Coastguard Worker builtin_options:BuiltinOptions; 1503*61046927SAndroid Build Coastguard Worker custom_options:[ubyte]; 1504*61046927SAndroid Build Coastguard Worker custom_options_format:CustomOptionsFormat; 1505*61046927SAndroid Build Coastguard Worker 1506*61046927SAndroid Build Coastguard Worker // A list of booleans indicating the input tensors which are being mutated by 1507*61046927SAndroid Build Coastguard Worker // this operator.(e.g. used by RNN and LSTM). 1508*61046927SAndroid Build Coastguard Worker // For example, if the "inputs" array refers to 5 tensors and the second and 1509*61046927SAndroid Build Coastguard Worker // fifth are mutable variables, then this list will contain 1510*61046927SAndroid Build Coastguard Worker // [false, true, false, false, true]. 1511*61046927SAndroid Build Coastguard Worker // 1512*61046927SAndroid Build Coastguard Worker // If the list is empty, no variable is mutated in this operator. 1513*61046927SAndroid Build Coastguard Worker // The list either has the same length as `inputs`, or is empty. 1514*61046927SAndroid Build Coastguard Worker mutating_variable_inputs:[bool]; 1515*61046927SAndroid Build Coastguard Worker 1516*61046927SAndroid Build Coastguard Worker // A list of indices to the subgraph's "tensors" that are internal to an Op. 1517*61046927SAndroid Build Coastguard Worker // Internal tensors are those that do not flow in or out of the operation, 1518*61046927SAndroid Build Coastguard Worker // but instead are part of internal computation. As such, the operation's 1519*61046927SAndroid Build Coastguard Worker // implementation may manage its memory more efficiently. They are needed 1520*61046927SAndroid Build Coastguard Worker // however (i.e. not just an implementation detail) since they are part of the 1521*61046927SAndroid Build Coastguard Worker // computation, which may require relevant metadata such as quantization 1522*61046927SAndroid Build Coastguard Worker // parameters. 1523*61046927SAndroid Build Coastguard Worker intermediates:[int]; 1524*61046927SAndroid Build Coastguard Worker 1525*61046927SAndroid Build Coastguard Worker // When an op is using custom_options in a model that is larger than 2GB, then 1526*61046927SAndroid Build Coastguard Worker // we instead use the following attributes to find the buffer location which 1527*61046927SAndroid Build Coastguard Worker // is stored outside of flatbuffers, the offset is calculated relative to the 1528*61046927SAndroid Build Coastguard Worker // beginning of the file and is only valid if > 1 1529*61046927SAndroid Build Coastguard Worker large_custom_options_offset: ulong; 1530*61046927SAndroid Build Coastguard Worker large_custom_options_size: ulong; 1531*61046927SAndroid Build Coastguard Worker 1532*61046927SAndroid Build Coastguard Worker // Flatbuffers union struct has a 128 elements limit in JAVA, so a second 1533*61046927SAndroid Build Coastguard Worker // union is added, in the case of where BuitlinOptions2 runs out, a third 1534*61046927SAndroid Build Coastguard Worker // one can be added 1535*61046927SAndroid Build Coastguard Worker builtin_options_2 : BuiltinOptions2; 1536*61046927SAndroid Build Coastguard Worker} 1537*61046927SAndroid Build Coastguard Worker 1538*61046927SAndroid Build Coastguard Worker// The root type, defining a subgraph, which typically represents an entire 1539*61046927SAndroid Build Coastguard Worker// model. 1540*61046927SAndroid Build Coastguard Workertable SubGraph { 1541*61046927SAndroid Build Coastguard Worker // A list of all tensors used in this subgraph. 1542*61046927SAndroid Build Coastguard Worker tensors:[Tensor]; 1543*61046927SAndroid Build Coastguard Worker 1544*61046927SAndroid Build Coastguard Worker // Indices of the tensors that are inputs into this subgraph. Note this is 1545*61046927SAndroid Build Coastguard Worker // the list of non-static tensors that feed into the subgraph for inference. 1546*61046927SAndroid Build Coastguard Worker inputs:[int]; 1547*61046927SAndroid Build Coastguard Worker 1548*61046927SAndroid Build Coastguard Worker // Indices of the tensors that are outputs out of this subgraph. Note this is 1549*61046927SAndroid Build Coastguard Worker // the list of output tensors that are considered the product of the 1550*61046927SAndroid Build Coastguard Worker // subgraph's inference. 1551*61046927SAndroid Build Coastguard Worker outputs:[int]; 1552*61046927SAndroid Build Coastguard Worker 1553*61046927SAndroid Build Coastguard Worker // All operators, in execution order. 1554*61046927SAndroid Build Coastguard Worker operators:[Operator]; 1555*61046927SAndroid Build Coastguard Worker 1556*61046927SAndroid Build Coastguard Worker // Name of this subgraph (used for debugging). 1557*61046927SAndroid Build Coastguard Worker name:string; 1558*61046927SAndroid Build Coastguard Worker} 1559*61046927SAndroid Build Coastguard Worker 1560*61046927SAndroid Build Coastguard Worker// Table of raw data buffers (used for constant tensors). Referenced by tensors 1561*61046927SAndroid Build Coastguard Worker// by index. The generous alignment accommodates mmap-friendly data structures. 1562*61046927SAndroid Build Coastguard Workertable Buffer { 1563*61046927SAndroid Build Coastguard Worker data:[ubyte] (force_align: 16); 1564*61046927SAndroid Build Coastguard Worker 1565*61046927SAndroid Build Coastguard Worker // In a model that is larger than 2GB, then buffers instead uses the following 1566*61046927SAndroid Build Coastguard Worker // attributes to find stored data, which is outside of flatbuffers 1567*61046927SAndroid Build Coastguard Worker // the offset is calculated relative to the beginning of the file and is only 1568*61046927SAndroid Build Coastguard Worker // valid if > 1. 1569*61046927SAndroid Build Coastguard Worker offset: ulong; 1570*61046927SAndroid Build Coastguard Worker size: ulong; 1571*61046927SAndroid Build Coastguard Worker} 1572*61046927SAndroid Build Coastguard Worker 1573*61046927SAndroid Build Coastguard Workertable Metadata { 1574*61046927SAndroid Build Coastguard Worker // A human readable string to uniquely identify a Metadata. 1575*61046927SAndroid Build Coastguard Worker name:string; 1576*61046927SAndroid Build Coastguard Worker // An index to the buffers table. 1577*61046927SAndroid Build Coastguard Worker buffer:uint; 1578*61046927SAndroid Build Coastguard Worker} 1579*61046927SAndroid Build Coastguard Worker 1580*61046927SAndroid Build Coastguard Worker// Map from an alias name of tensor to tensor index in the graph. 1581*61046927SAndroid Build Coastguard Worker// This is used in Signature def. 1582*61046927SAndroid Build Coastguard Workertable TensorMap { 1583*61046927SAndroid Build Coastguard Worker // Represents the alias to use for this tensor. 1584*61046927SAndroid Build Coastguard Worker name:string; 1585*61046927SAndroid Build Coastguard Worker 1586*61046927SAndroid Build Coastguard Worker // The actual tensor index in the primary graph, that 'name' corresponds to. 1587*61046927SAndroid Build Coastguard Worker tensor_index:uint; 1588*61046927SAndroid Build Coastguard Worker} 1589*61046927SAndroid Build Coastguard Worker 1590*61046927SAndroid Build Coastguard Worker// This corresponds to SignatureDef in Tensorflow SavedModel. 1591*61046927SAndroid Build Coastguard Worker// The SignatureDef will be part of the SavedModel provided for conversion. 1592*61046927SAndroid Build Coastguard Workertable SignatureDef { 1593*61046927SAndroid Build Coastguard Worker // Named inputs for this signature. 1594*61046927SAndroid Build Coastguard Worker inputs:[TensorMap]; 1595*61046927SAndroid Build Coastguard Worker 1596*61046927SAndroid Build Coastguard Worker // Named outputs for this signature. 1597*61046927SAndroid Build Coastguard Worker outputs:[TensorMap]; 1598*61046927SAndroid Build Coastguard Worker 1599*61046927SAndroid Build Coastguard Worker // Key value which was in the Tensorflow SavedModel SignatureDef map. 1600*61046927SAndroid Build Coastguard Worker signature_key:string; 1601*61046927SAndroid Build Coastguard Worker 1602*61046927SAndroid Build Coastguard Worker // Model tag, deprecated. 1603*61046927SAndroid Build Coastguard Worker deprecated_tag:string (deprecated); 1604*61046927SAndroid Build Coastguard Worker 1605*61046927SAndroid Build Coastguard Worker // Index of subgraphs that corresponds to the exported method. 1606*61046927SAndroid Build Coastguard Worker subgraph_index:uint; 1607*61046927SAndroid Build Coastguard Worker} 1608*61046927SAndroid Build Coastguard Worker 1609*61046927SAndroid Build Coastguard Workertable Model { 1610*61046927SAndroid Build Coastguard Worker // Version of the schema. 1611*61046927SAndroid Build Coastguard Worker version:uint; 1612*61046927SAndroid Build Coastguard Worker 1613*61046927SAndroid Build Coastguard Worker // A list of all operator codes used in this model. This is 1614*61046927SAndroid Build Coastguard Worker // kept in order because operators carry an index into this 1615*61046927SAndroid Build Coastguard Worker // vector. 1616*61046927SAndroid Build Coastguard Worker operator_codes:[OperatorCode]; 1617*61046927SAndroid Build Coastguard Worker 1618*61046927SAndroid Build Coastguard Worker // All the subgraphs of the model. The 0th is assumed to be the main 1619*61046927SAndroid Build Coastguard Worker // model. 1620*61046927SAndroid Build Coastguard Worker subgraphs:[SubGraph]; 1621*61046927SAndroid Build Coastguard Worker 1622*61046927SAndroid Build Coastguard Worker // A description of the model. 1623*61046927SAndroid Build Coastguard Worker description:string; 1624*61046927SAndroid Build Coastguard Worker 1625*61046927SAndroid Build Coastguard Worker // Buffers of the model. 1626*61046927SAndroid Build Coastguard Worker // Note the 0th entry of this array must be an empty buffer (sentinel). 1627*61046927SAndroid Build Coastguard Worker // This is a convention so that tensors without a buffer can provide 0 as 1628*61046927SAndroid Build Coastguard Worker // their buffer. 1629*61046927SAndroid Build Coastguard Worker buffers:[Buffer]; 1630*61046927SAndroid Build Coastguard Worker 1631*61046927SAndroid Build Coastguard Worker // Metadata about the model. Indirects into the existings buffers list. 1632*61046927SAndroid Build Coastguard Worker // Deprecated, prefer to use metadata field. 1633*61046927SAndroid Build Coastguard Worker metadata_buffer:[int]; 1634*61046927SAndroid Build Coastguard Worker 1635*61046927SAndroid Build Coastguard Worker // Metadata about the model. 1636*61046927SAndroid Build Coastguard Worker metadata:[Metadata]; 1637*61046927SAndroid Build Coastguard Worker 1638*61046927SAndroid Build Coastguard Worker // Optional SignatureDefs for the model. 1639*61046927SAndroid Build Coastguard Worker signature_defs:[SignatureDef]; 1640*61046927SAndroid Build Coastguard Worker} 1641*61046927SAndroid Build Coastguard Worker 1642*61046927SAndroid Build Coastguard Workerroot_type Model; 1643