// automatically generated by the FlatBuffers compiler, do not modify

/**
 * @const
 * @namespace
 */
var tflite = tflite || {};

/**
 * @enum
 */
tflite.TensorType = {
  FLOAT32: 0,
  FLOAT16: 1,
  INT32: 2,
  UINT8: 3,
  INT64: 4,
  STRING: 5,
  BOOL: 6,
  INT16: 7
};

/**
 * @enum
 */
tflite.BuiltinOperator = {
  ADD: 0,
  AVERAGE_POOL_2D: 1,
  CONCATENATION: 2,
  CONV_2D: 3,
  DEPTHWISE_CONV_2D: 4,
  DEQUANTIZE: 6,
  EMBEDDING_LOOKUP: 7,
  FLOOR: 8,
  FULLY_CONNECTED: 9,
  HASHTABLE_LOOKUP: 10,
  L2_NORMALIZATION: 11,
  L2_POOL_2D: 12,
  LOCAL_RESPONSE_NORMALIZATION: 13,
  LOGISTIC: 14,
  LSH_PROJECTION: 15,
  LSTM: 16,
  MAX_POOL_2D: 17,
  MUL: 18,
  RELU: 19,
  RELU_N1_TO_1: 20,
  RELU6: 21,
  RESHAPE: 22,
  RESIZE_BILINEAR: 23,
  RNN: 24,
  SOFTMAX: 25,
  SPACE_TO_DEPTH: 26,
  SVDF: 27,
  TANH: 28,
  CONCAT_EMBEDDINGS: 29,
  SKIP_GRAM: 30,
  CALL: 31,
  CUSTOM: 32,
  EMBEDDING_LOOKUP_SPARSE: 33,
  PAD: 34,
  UNIDIRECTIONAL_SEQUENCE_RNN: 35,
  GATHER: 36,
  BATCH_TO_SPACE_ND: 37,
  SPACE_TO_BATCH_ND: 38,
  TRANSPOSE: 39,
  MEAN: 40,
  SUB: 41,
  DIV: 42,
  SQUEEZE: 43,
  UNIDIRECTIONAL_SEQUENCE_LSTM: 44,
  STRIDED_SLICE: 45,
  BIDIRECTIONAL_SEQUENCE_RNN: 46,
  EXP: 47,
  TOPK_V2: 48,
  SPLIT: 49,
  LOG_SOFTMAX: 50,
  DELEGATE: 51,
  BIDIRECTIONAL_SEQUENCE_LSTM: 52,
  CAST: 53,
  PRELU: 54,
  MAXIMUM: 55,
  ARG_MAX: 56,
  MINIMUM: 57,
  LESS: 58,
  NEG: 59,
  PADV2: 60,
  GREATER: 61,
  GREATER_EQUAL: 62,
  LESS_EQUAL: 63,
  SELECT: 64,
  SLICE: 65,
  SIN: 66,
  TRANSPOSE_CONV: 67,
  SPARSE_TO_DENSE: 68,
  TILE: 69,
  EXPAND_DIMS: 70,
  EQUAL: 71,
  NOT_EQUAL: 72,
  LOG: 73
};

/**
 * @enum
 */
tflite.BuiltinOptions = {
  NONE: 0,
  Conv2DOptions: 1,
  DepthwiseConv2DOptions: 2,
  ConcatEmbeddingsOptions: 3,
  LSHProjectionOptions: 4,
  Pool2DOptions: 5,
  SVDFOptions: 6,
  RNNOptions: 7,
  FullyConnectedOptions: 8,
  SoftmaxOptions: 9,
  ConcatenationOptions: 10,
  AddOptions: 11,
  L2NormOptions: 12,
  LocalResponseNormalizationOptions: 13,
  LSTMOptions: 14,
  ResizeBilinearOptions: 15,
  CallOptions: 16,
  ReshapeOptions: 17,
  SkipGramOptions: 18,
  SpaceToDepthOptions: 19,
  EmbeddingLookupSparseOptions: 20,
  MulOptions: 21,
  PadOptions: 22,
  GatherOptions: 23,
  BatchToSpaceNDOptions: 24,
  SpaceToBatchNDOptions: 25,
  TransposeOptions: 26,
  MeanOptions: 27,
  SubOptions: 28,
  DivOptions: 29,
  SqueezeOptions: 30,
  SequenceRNNOptions: 31,
  StridedSliceOptions: 32,
  ExpOptions: 33,
  TopKV2Options: 34,
  SplitOptions: 35,
  LogSoftmaxOptions: 36,
  CastOptions: 37,
  DequantizeOptions: 38,
  MaximumMinimumOptions: 39,
  ArgMaxOptions: 40,
  LessOptions: 41,
  NegOptions: 42,
  PadV2Options: 43,
  GreaterOptions: 44,
  GreaterEqualOptions: 45,
  LessEqualOptions: 46,
  SelectOptions: 47,
  SliceOptions: 48,
  TransposeConvOptions: 49,
  SparseToDenseOptions: 50,
  TileOptions: 51,
  ExpandDimsOptions: 52,
  EqualOptions: 53,
  NotEqualOptions: 54
};

/**
 * @enum
 */
tflite.Padding = {
  SAME: 0,
  VALID: 1
};

/**
 * @enum
 */
tflite.ActivationFunctionType = {
  NONE: 0,
  RELU: 1,
  RELU_N1_TO_1: 2,
  RELU6: 3,
  TANH: 4,
  SIGN_BIT: 5
};

/**
 * @enum
 */
tflite.LSHProjectionType = {
  UNKNOWN: 0,
  SPARSE: 1,
  DENSE: 2
};

/**
 * @enum
 */
tflite.LSTMKernelType = {
  FULL: 0,
  BASIC: 1
};

/**
 * @enum
 */
tflite.CombinerType = {
  SUM: 0,
  MEAN: 1,
  SQRTN: 2
};

/**
 * @enum
 */
tflite.CustomOptionsFormat = {
  FLEXBUFFERS: 0
};

/**
 * @constructor
 */
tflite.QuantizationParameters = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.QuantizationParameters}
 */
tflite.QuantizationParameters.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.QuantizationParameters=} obj
 * @returns {tflite.QuantizationParameters}
 */
tflite.QuantizationParameters.getRootAsQuantizationParameters = function(bb, obj) {
  return (obj || new tflite.QuantizationParameters).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.QuantizationParameters.prototype.min = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.QuantizationParameters.prototype.minLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Float32Array}
 */
tflite.QuantizationParameters.prototype.minArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.QuantizationParameters.prototype.max = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.QuantizationParameters.prototype.maxLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Float32Array}
 */
tflite.QuantizationParameters.prototype.maxArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.QuantizationParameters.prototype.scale = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readFloat32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.QuantizationParameters.prototype.scaleLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Float32Array}
 */
tflite.QuantizationParameters.prototype.scaleArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? new Float32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {number} index
 * @returns {flatbuffers.Long}
 */
tflite.QuantizationParameters.prototype.zeroPoint = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? this.bb.readInt64(this.bb.__vector(this.bb_pos + offset) + index * 8) : this.bb.createLong(0, 0);
};

/**
 * @returns {number}
 */
tflite.QuantizationParameters.prototype.zeroPointLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.QuantizationParameters.startQuantizationParameters = function(builder) {
  builder.startObject(4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} minOffset
 */
tflite.QuantizationParameters.addMin = function(builder, minOffset) {
  builder.addFieldOffset(0, minOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.QuantizationParameters.createMinVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addFloat32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.QuantizationParameters.startMinVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} maxOffset
 */
tflite.QuantizationParameters.addMax = function(builder, maxOffset) {
  builder.addFieldOffset(1, maxOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.QuantizationParameters.createMaxVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addFloat32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.QuantizationParameters.startMaxVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} scaleOffset
 */
tflite.QuantizationParameters.addScale = function(builder, scaleOffset) {
  builder.addFieldOffset(2, scaleOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.QuantizationParameters.createScaleVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addFloat32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.QuantizationParameters.startScaleVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} zeroPointOffset
 */
tflite.QuantizationParameters.addZeroPoint = function(builder, zeroPointOffset) {
  builder.addFieldOffset(3, zeroPointOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<flatbuffers.Long>} data
 * @returns {flatbuffers.Offset}
 */
tflite.QuantizationParameters.createZeroPointVector = function(builder, data) {
  builder.startVector(8, data.length, 8);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt64(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.QuantizationParameters.startZeroPointVector = function(builder, numElems) {
  builder.startVector(8, numElems, 8);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.QuantizationParameters.endQuantizationParameters = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.Tensor = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.Tensor}
 */
tflite.Tensor.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.Tensor=} obj
 * @returns {tflite.Tensor}
 */
tflite.Tensor.getRootAsTensor = function(bb, obj) {
  return (obj || new tflite.Tensor).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.Tensor.prototype.shape = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.Tensor.prototype.shapeLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int32Array}
 */
tflite.Tensor.prototype.shapeArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @returns {tflite.TensorType}
 */
tflite.Tensor.prototype.type = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? /** @type {tflite.TensorType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.TensorType.FLOAT32;
};

/**
 * @returns {number}
 */
tflite.Tensor.prototype.buffer = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readUint32(this.bb_pos + offset) : 0;
};

/**
 * @param {flatbuffers.Encoding=} optionalEncoding
 * @returns {string|Uint8Array|null}
 */
tflite.Tensor.prototype.name = function(optionalEncoding) {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
};

/**
 * @param {tflite.QuantizationParameters=} obj
 * @returns {tflite.QuantizationParameters|null}
 */
tflite.Tensor.prototype.quantization = function(obj) {
  var offset = this.bb.__offset(this.bb_pos, 12);
  return offset ? (obj || new tflite.QuantizationParameters).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;
};

/**
 * @returns {boolean}
 */
tflite.Tensor.prototype.isVariable = function() {
  var offset = this.bb.__offset(this.bb_pos, 14);
  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.Tensor.startTensor = function(builder) {
  builder.startObject(6);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} shapeOffset
 */
tflite.Tensor.addShape = function(builder, shapeOffset) {
  builder.addFieldOffset(0, shapeOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.Tensor.createShapeVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.Tensor.startShapeVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.TensorType} type
 */
tflite.Tensor.addType = function(builder, type) {
  builder.addFieldInt8(1, type, tflite.TensorType.FLOAT32);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} buffer
 */
tflite.Tensor.addBuffer = function(builder, buffer) {
  builder.addFieldInt32(2, buffer, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} nameOffset
 */
tflite.Tensor.addName = function(builder, nameOffset) {
  builder.addFieldOffset(3, nameOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} quantizationOffset
 */
tflite.Tensor.addQuantization = function(builder, quantizationOffset) {
  builder.addFieldOffset(4, quantizationOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {boolean} isVariable
 */
tflite.Tensor.addIsVariable = function(builder, isVariable) {
  builder.addFieldInt8(5, +isVariable, +false);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.Tensor.endTensor = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.Conv2DOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.Conv2DOptions}
 */
tflite.Conv2DOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.Conv2DOptions=} obj
 * @returns {tflite.Conv2DOptions}
 */
tflite.Conv2DOptions.getRootAsConv2DOptions = function(bb, obj) {
  return (obj || new tflite.Conv2DOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.Padding}
 */
tflite.Conv2DOptions.prototype.padding = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.Padding} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.Padding.SAME;
};

/**
 * @returns {number}
 */
tflite.Conv2DOptions.prototype.strideW = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.Conv2DOptions.prototype.strideH = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.Conv2DOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @returns {number}
 */
tflite.Conv2DOptions.prototype.dilationWFactor = function() {
  var offset = this.bb.__offset(this.bb_pos, 12);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 1;
};

/**
 * @returns {number}
 */
tflite.Conv2DOptions.prototype.dilationHFactor = function() {
  var offset = this.bb.__offset(this.bb_pos, 14);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 1;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.Conv2DOptions.startConv2DOptions = function(builder) {
  builder.startObject(6);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.Padding} padding
 */
tflite.Conv2DOptions.addPadding = function(builder, padding) {
  builder.addFieldInt8(0, padding, tflite.Padding.SAME);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} strideW
 */
tflite.Conv2DOptions.addStrideW = function(builder, strideW) {
  builder.addFieldInt32(1, strideW, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} strideH
 */
tflite.Conv2DOptions.addStrideH = function(builder, strideH) {
  builder.addFieldInt32(2, strideH, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.Conv2DOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(3, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} dilationWFactor
 */
tflite.Conv2DOptions.addDilationWFactor = function(builder, dilationWFactor) {
  builder.addFieldInt32(4, dilationWFactor, 1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} dilationHFactor
 */
tflite.Conv2DOptions.addDilationHFactor = function(builder, dilationHFactor) {
  builder.addFieldInt32(5, dilationHFactor, 1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.Conv2DOptions.endConv2DOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.Pool2DOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.Pool2DOptions}
 */
tflite.Pool2DOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.Pool2DOptions=} obj
 * @returns {tflite.Pool2DOptions}
 */
tflite.Pool2DOptions.getRootAsPool2DOptions = function(bb, obj) {
  return (obj || new tflite.Pool2DOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.Padding}
 */
tflite.Pool2DOptions.prototype.padding = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.Padding} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.Padding.SAME;
};

/**
 * @returns {number}
 */
tflite.Pool2DOptions.prototype.strideW = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.Pool2DOptions.prototype.strideH = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.Pool2DOptions.prototype.filterWidth = function() {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.Pool2DOptions.prototype.filterHeight = function() {
  var offset = this.bb.__offset(this.bb_pos, 12);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.Pool2DOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 14);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.Pool2DOptions.startPool2DOptions = function(builder) {
  builder.startObject(6);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.Padding} padding
 */
tflite.Pool2DOptions.addPadding = function(builder, padding) {
  builder.addFieldInt8(0, padding, tflite.Padding.SAME);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} strideW
 */
tflite.Pool2DOptions.addStrideW = function(builder, strideW) {
  builder.addFieldInt32(1, strideW, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} strideH
 */
tflite.Pool2DOptions.addStrideH = function(builder, strideH) {
  builder.addFieldInt32(2, strideH, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} filterWidth
 */
tflite.Pool2DOptions.addFilterWidth = function(builder, filterWidth) {
  builder.addFieldInt32(3, filterWidth, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} filterHeight
 */
tflite.Pool2DOptions.addFilterHeight = function(builder, filterHeight) {
  builder.addFieldInt32(4, filterHeight, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.Pool2DOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(5, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.Pool2DOptions.endPool2DOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.DepthwiseConv2DOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.DepthwiseConv2DOptions}
 */
tflite.DepthwiseConv2DOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.DepthwiseConv2DOptions=} obj
 * @returns {tflite.DepthwiseConv2DOptions}
 */
tflite.DepthwiseConv2DOptions.getRootAsDepthwiseConv2DOptions = function(bb, obj) {
  return (obj || new tflite.DepthwiseConv2DOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.Padding}
 */
tflite.DepthwiseConv2DOptions.prototype.padding = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.Padding} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.Padding.SAME;
};

/**
 * @returns {number}
 */
tflite.DepthwiseConv2DOptions.prototype.strideW = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.DepthwiseConv2DOptions.prototype.strideH = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.DepthwiseConv2DOptions.prototype.depthMultiplier = function() {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.DepthwiseConv2DOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 12);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.DepthwiseConv2DOptions.startDepthwiseConv2DOptions = function(builder) {
  builder.startObject(5);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.Padding} padding
 */
tflite.DepthwiseConv2DOptions.addPadding = function(builder, padding) {
  builder.addFieldInt8(0, padding, tflite.Padding.SAME);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} strideW
 */
tflite.DepthwiseConv2DOptions.addStrideW = function(builder, strideW) {
  builder.addFieldInt32(1, strideW, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} strideH
 */
tflite.DepthwiseConv2DOptions.addStrideH = function(builder, strideH) {
  builder.addFieldInt32(2, strideH, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} depthMultiplier
 */
tflite.DepthwiseConv2DOptions.addDepthMultiplier = function(builder, depthMultiplier) {
  builder.addFieldInt32(3, depthMultiplier, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.DepthwiseConv2DOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(4, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.DepthwiseConv2DOptions.endDepthwiseConv2DOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.ConcatEmbeddingsOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.ConcatEmbeddingsOptions}
 */
tflite.ConcatEmbeddingsOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.ConcatEmbeddingsOptions=} obj
 * @returns {tflite.ConcatEmbeddingsOptions}
 */
tflite.ConcatEmbeddingsOptions.getRootAsConcatEmbeddingsOptions = function(bb, obj) {
  return (obj || new tflite.ConcatEmbeddingsOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.ConcatEmbeddingsOptions.prototype.numChannels = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.ConcatEmbeddingsOptions.prototype.numColumnsPerChannel = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.ConcatEmbeddingsOptions.prototype.numColumnsPerChannelLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int32Array}
 */
tflite.ConcatEmbeddingsOptions.prototype.numColumnsPerChannelArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.ConcatEmbeddingsOptions.prototype.embeddingDimPerChannel = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.ConcatEmbeddingsOptions.prototype.embeddingDimPerChannelLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int32Array}
 */
tflite.ConcatEmbeddingsOptions.prototype.embeddingDimPerChannelArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.ConcatEmbeddingsOptions.startConcatEmbeddingsOptions = function(builder) {
  builder.startObject(3);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numChannels
 */
tflite.ConcatEmbeddingsOptions.addNumChannels = function(builder, numChannels) {
  builder.addFieldInt32(0, numChannels, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} numColumnsPerChannelOffset
 */
tflite.ConcatEmbeddingsOptions.addNumColumnsPerChannel = function(builder, numColumnsPerChannelOffset) {
  builder.addFieldOffset(1, numColumnsPerChannelOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.ConcatEmbeddingsOptions.createNumColumnsPerChannelVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.ConcatEmbeddingsOptions.startNumColumnsPerChannelVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} embeddingDimPerChannelOffset
 */
tflite.ConcatEmbeddingsOptions.addEmbeddingDimPerChannel = function(builder, embeddingDimPerChannelOffset) {
  builder.addFieldOffset(2, embeddingDimPerChannelOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.ConcatEmbeddingsOptions.createEmbeddingDimPerChannelVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.ConcatEmbeddingsOptions.startEmbeddingDimPerChannelVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.ConcatEmbeddingsOptions.endConcatEmbeddingsOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.LSHProjectionOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.LSHProjectionOptions}
 */
tflite.LSHProjectionOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.LSHProjectionOptions=} obj
 * @returns {tflite.LSHProjectionOptions}
 */
tflite.LSHProjectionOptions.getRootAsLSHProjectionOptions = function(bb, obj) {
  return (obj || new tflite.LSHProjectionOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.LSHProjectionType}
 */
tflite.LSHProjectionOptions.prototype.type = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.LSHProjectionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.LSHProjectionType.UNKNOWN;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.LSHProjectionOptions.startLSHProjectionOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.LSHProjectionType} type
 */
tflite.LSHProjectionOptions.addType = function(builder, type) {
  builder.addFieldInt8(0, type, tflite.LSHProjectionType.UNKNOWN);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.LSHProjectionOptions.endLSHProjectionOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SVDFOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SVDFOptions}
 */
tflite.SVDFOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SVDFOptions=} obj
 * @returns {tflite.SVDFOptions}
 */
tflite.SVDFOptions.getRootAsSVDFOptions = function(bb, obj) {
  return (obj || new tflite.SVDFOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.SVDFOptions.prototype.rank = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.SVDFOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SVDFOptions.startSVDFOptions = function(builder) {
  builder.startObject(2);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} rank
 */
tflite.SVDFOptions.addRank = function(builder, rank) {
  builder.addFieldInt32(0, rank, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.SVDFOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(1, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SVDFOptions.endSVDFOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.RNNOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.RNNOptions}
 */
tflite.RNNOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.RNNOptions=} obj
 * @returns {tflite.RNNOptions}
 */
tflite.RNNOptions.getRootAsRNNOptions = function(bb, obj) {
  return (obj || new tflite.RNNOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.RNNOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.RNNOptions.startRNNOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.RNNOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(0, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.RNNOptions.endRNNOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SequenceRNNOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SequenceRNNOptions}
 */
tflite.SequenceRNNOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SequenceRNNOptions=} obj
 * @returns {tflite.SequenceRNNOptions}
 */
tflite.SequenceRNNOptions.getRootAsSequenceRNNOptions = function(bb, obj) {
  return (obj || new tflite.SequenceRNNOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {boolean}
 */
tflite.SequenceRNNOptions.prototype.timeMajor = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.SequenceRNNOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SequenceRNNOptions.startSequenceRNNOptions = function(builder) {
  builder.startObject(2);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {boolean} timeMajor
 */
tflite.SequenceRNNOptions.addTimeMajor = function(builder, timeMajor) {
  builder.addFieldInt8(0, +timeMajor, +false);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.SequenceRNNOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(1, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SequenceRNNOptions.endSequenceRNNOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.BidirectionalSequenceRNNOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.BidirectionalSequenceRNNOptions}
 */
tflite.BidirectionalSequenceRNNOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.BidirectionalSequenceRNNOptions=} obj
 * @returns {tflite.BidirectionalSequenceRNNOptions}
 */
tflite.BidirectionalSequenceRNNOptions.getRootAsBidirectionalSequenceRNNOptions = function(bb, obj) {
  return (obj || new tflite.BidirectionalSequenceRNNOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {boolean}
 */
tflite.BidirectionalSequenceRNNOptions.prototype.timeMajor = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.BidirectionalSequenceRNNOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.BidirectionalSequenceRNNOptions.startBidirectionalSequenceRNNOptions = function(builder) {
  builder.startObject(2);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {boolean} timeMajor
 */
tflite.BidirectionalSequenceRNNOptions.addTimeMajor = function(builder, timeMajor) {
  builder.addFieldInt8(0, +timeMajor, +false);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.BidirectionalSequenceRNNOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(1, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.BidirectionalSequenceRNNOptions.endBidirectionalSequenceRNNOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.FullyConnectedOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.FullyConnectedOptions}
 */
tflite.FullyConnectedOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.FullyConnectedOptions=} obj
 * @returns {tflite.FullyConnectedOptions}
 */
tflite.FullyConnectedOptions.getRootAsFullyConnectedOptions = function(bb, obj) {
  return (obj || new tflite.FullyConnectedOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.FullyConnectedOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.FullyConnectedOptions.startFullyConnectedOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.FullyConnectedOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(0, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.FullyConnectedOptions.endFullyConnectedOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SoftmaxOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SoftmaxOptions}
 */
tflite.SoftmaxOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SoftmaxOptions=} obj
 * @returns {tflite.SoftmaxOptions}
 */
tflite.SoftmaxOptions.getRootAsSoftmaxOptions = function(bb, obj) {
  return (obj || new tflite.SoftmaxOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.SoftmaxOptions.prototype.beta = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SoftmaxOptions.startSoftmaxOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} beta
 */
tflite.SoftmaxOptions.addBeta = function(builder, beta) {
  builder.addFieldFloat32(0, beta, 0.0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SoftmaxOptions.endSoftmaxOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.ConcatenationOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.ConcatenationOptions}
 */
tflite.ConcatenationOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.ConcatenationOptions=} obj
 * @returns {tflite.ConcatenationOptions}
 */
tflite.ConcatenationOptions.getRootAsConcatenationOptions = function(bb, obj) {
  return (obj || new tflite.ConcatenationOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.ConcatenationOptions.prototype.axis = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.ConcatenationOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.ConcatenationOptions.startConcatenationOptions = function(builder) {
  builder.startObject(2);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} axis
 */
tflite.ConcatenationOptions.addAxis = function(builder, axis) {
  builder.addFieldInt32(0, axis, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.ConcatenationOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(1, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.ConcatenationOptions.endConcatenationOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.AddOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.AddOptions}
 */
tflite.AddOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.AddOptions=} obj
 * @returns {tflite.AddOptions}
 */
tflite.AddOptions.getRootAsAddOptions = function(bb, obj) {
  return (obj || new tflite.AddOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.AddOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.AddOptions.startAddOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.AddOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(0, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.AddOptions.endAddOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.MulOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.MulOptions}
 */
tflite.MulOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.MulOptions=} obj
 * @returns {tflite.MulOptions}
 */
tflite.MulOptions.getRootAsMulOptions = function(bb, obj) {
  return (obj || new tflite.MulOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.MulOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.MulOptions.startMulOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.MulOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(0, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.MulOptions.endMulOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.L2NormOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.L2NormOptions}
 */
tflite.L2NormOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.L2NormOptions=} obj
 * @returns {tflite.L2NormOptions}
 */
tflite.L2NormOptions.getRootAsL2NormOptions = function(bb, obj) {
  return (obj || new tflite.L2NormOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.L2NormOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.L2NormOptions.startL2NormOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.L2NormOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(0, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.L2NormOptions.endL2NormOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.LocalResponseNormalizationOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.LocalResponseNormalizationOptions}
 */
tflite.LocalResponseNormalizationOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.LocalResponseNormalizationOptions=} obj
 * @returns {tflite.LocalResponseNormalizationOptions}
 */
tflite.LocalResponseNormalizationOptions.getRootAsLocalResponseNormalizationOptions = function(bb, obj) {
  return (obj || new tflite.LocalResponseNormalizationOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.LocalResponseNormalizationOptions.prototype.radius = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.LocalResponseNormalizationOptions.prototype.bias = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
};

/**
 * @returns {number}
 */
tflite.LocalResponseNormalizationOptions.prototype.alpha = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
};

/**
 * @returns {number}
 */
tflite.LocalResponseNormalizationOptions.prototype.beta = function() {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.LocalResponseNormalizationOptions.startLocalResponseNormalizationOptions = function(builder) {
  builder.startObject(4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} radius
 */
tflite.LocalResponseNormalizationOptions.addRadius = function(builder, radius) {
  builder.addFieldInt32(0, radius, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} bias
 */
tflite.LocalResponseNormalizationOptions.addBias = function(builder, bias) {
  builder.addFieldFloat32(1, bias, 0.0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} alpha
 */
tflite.LocalResponseNormalizationOptions.addAlpha = function(builder, alpha) {
  builder.addFieldFloat32(2, alpha, 0.0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} beta
 */
tflite.LocalResponseNormalizationOptions.addBeta = function(builder, beta) {
  builder.addFieldFloat32(3, beta, 0.0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.LocalResponseNormalizationOptions.endLocalResponseNormalizationOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.LSTMOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.LSTMOptions}
 */
tflite.LSTMOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.LSTMOptions=} obj
 * @returns {tflite.LSTMOptions}
 */
tflite.LSTMOptions.getRootAsLSTMOptions = function(bb, obj) {
  return (obj || new tflite.LSTMOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.LSTMOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @returns {number}
 */
tflite.LSTMOptions.prototype.cellClip = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
};

/**
 * @returns {number}
 */
tflite.LSTMOptions.prototype.projClip = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
};

/**
 * @returns {tflite.LSTMKernelType}
 */
tflite.LSTMOptions.prototype.kernelType = function() {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? /** @type {tflite.LSTMKernelType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.LSTMKernelType.FULL;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.LSTMOptions.startLSTMOptions = function(builder) {
  builder.startObject(4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.LSTMOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(0, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} cellClip
 */
tflite.LSTMOptions.addCellClip = function(builder, cellClip) {
  builder.addFieldFloat32(1, cellClip, 0.0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} projClip
 */
tflite.LSTMOptions.addProjClip = function(builder, projClip) {
  builder.addFieldFloat32(2, projClip, 0.0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.LSTMKernelType} kernelType
 */
tflite.LSTMOptions.addKernelType = function(builder, kernelType) {
  builder.addFieldInt8(3, kernelType, tflite.LSTMKernelType.FULL);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.LSTMOptions.endLSTMOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.ResizeBilinearOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.ResizeBilinearOptions}
 */
tflite.ResizeBilinearOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.ResizeBilinearOptions=} obj
 * @returns {tflite.ResizeBilinearOptions}
 */
tflite.ResizeBilinearOptions.getRootAsResizeBilinearOptions = function(bb, obj) {
  return (obj || new tflite.ResizeBilinearOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {boolean}
 */
tflite.ResizeBilinearOptions.prototype.alignCorners = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.ResizeBilinearOptions.startResizeBilinearOptions = function(builder) {
  builder.startObject(3);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {boolean} alignCorners
 */
tflite.ResizeBilinearOptions.addAlignCorners = function(builder, alignCorners) {
  builder.addFieldInt8(2, +alignCorners, +false);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.ResizeBilinearOptions.endResizeBilinearOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.CallOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.CallOptions}
 */
tflite.CallOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.CallOptions=} obj
 * @returns {tflite.CallOptions}
 */
tflite.CallOptions.getRootAsCallOptions = function(bb, obj) {
  return (obj || new tflite.CallOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.CallOptions.prototype.subgraph = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readUint32(this.bb_pos + offset) : 0;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.CallOptions.startCallOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} subgraph
 */
tflite.CallOptions.addSubgraph = function(builder, subgraph) {
  builder.addFieldInt32(0, subgraph, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.CallOptions.endCallOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.PadOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.PadOptions}
 */
tflite.PadOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.PadOptions=} obj
 * @returns {tflite.PadOptions}
 */
tflite.PadOptions.getRootAsPadOptions = function(bb, obj) {
  return (obj || new tflite.PadOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.PadOptions.startPadOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.PadOptions.endPadOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.PadV2Options = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.PadV2Options}
 */
tflite.PadV2Options.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.PadV2Options=} obj
 * @returns {tflite.PadV2Options}
 */
tflite.PadV2Options.getRootAsPadV2Options = function(bb, obj) {
  return (obj || new tflite.PadV2Options).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.PadV2Options.startPadV2Options = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.PadV2Options.endPadV2Options = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.ReshapeOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.ReshapeOptions}
 */
tflite.ReshapeOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.ReshapeOptions=} obj
 * @returns {tflite.ReshapeOptions}
 */
tflite.ReshapeOptions.getRootAsReshapeOptions = function(bb, obj) {
  return (obj || new tflite.ReshapeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.ReshapeOptions.prototype.newShape = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.ReshapeOptions.prototype.newShapeLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int32Array}
 */
tflite.ReshapeOptions.prototype.newShapeArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.ReshapeOptions.startReshapeOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} newShapeOffset
 */
tflite.ReshapeOptions.addNewShape = function(builder, newShapeOffset) {
  builder.addFieldOffset(0, newShapeOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.ReshapeOptions.createNewShapeVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.ReshapeOptions.startNewShapeVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.ReshapeOptions.endReshapeOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SpaceToBatchNDOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SpaceToBatchNDOptions}
 */
tflite.SpaceToBatchNDOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SpaceToBatchNDOptions=} obj
 * @returns {tflite.SpaceToBatchNDOptions}
 */
tflite.SpaceToBatchNDOptions.getRootAsSpaceToBatchNDOptions = function(bb, obj) {
  return (obj || new tflite.SpaceToBatchNDOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SpaceToBatchNDOptions.startSpaceToBatchNDOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SpaceToBatchNDOptions.endSpaceToBatchNDOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.BatchToSpaceNDOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.BatchToSpaceNDOptions}
 */
tflite.BatchToSpaceNDOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.BatchToSpaceNDOptions=} obj
 * @returns {tflite.BatchToSpaceNDOptions}
 */
tflite.BatchToSpaceNDOptions.getRootAsBatchToSpaceNDOptions = function(bb, obj) {
  return (obj || new tflite.BatchToSpaceNDOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.BatchToSpaceNDOptions.startBatchToSpaceNDOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.BatchToSpaceNDOptions.endBatchToSpaceNDOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SkipGramOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SkipGramOptions}
 */
tflite.SkipGramOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SkipGramOptions=} obj
 * @returns {tflite.SkipGramOptions}
 */
tflite.SkipGramOptions.getRootAsSkipGramOptions = function(bb, obj) {
  return (obj || new tflite.SkipGramOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.SkipGramOptions.prototype.ngramSize = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.SkipGramOptions.prototype.maxSkipSize = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {boolean}
 */
tflite.SkipGramOptions.prototype.includeAllNgrams = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SkipGramOptions.startSkipGramOptions = function(builder) {
  builder.startObject(3);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} ngramSize
 */
tflite.SkipGramOptions.addNgramSize = function(builder, ngramSize) {
  builder.addFieldInt32(0, ngramSize, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} maxSkipSize
 */
tflite.SkipGramOptions.addMaxSkipSize = function(builder, maxSkipSize) {
  builder.addFieldInt32(1, maxSkipSize, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {boolean} includeAllNgrams
 */
tflite.SkipGramOptions.addIncludeAllNgrams = function(builder, includeAllNgrams) {
  builder.addFieldInt8(2, +includeAllNgrams, +false);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SkipGramOptions.endSkipGramOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SpaceToDepthOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SpaceToDepthOptions}
 */
tflite.SpaceToDepthOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SpaceToDepthOptions=} obj
 * @returns {tflite.SpaceToDepthOptions}
 */
tflite.SpaceToDepthOptions.getRootAsSpaceToDepthOptions = function(bb, obj) {
  return (obj || new tflite.SpaceToDepthOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.SpaceToDepthOptions.prototype.blockSize = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SpaceToDepthOptions.startSpaceToDepthOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} blockSize
 */
tflite.SpaceToDepthOptions.addBlockSize = function(builder, blockSize) {
  builder.addFieldInt32(0, blockSize, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SpaceToDepthOptions.endSpaceToDepthOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SubOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SubOptions}
 */
tflite.SubOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SubOptions=} obj
 * @returns {tflite.SubOptions}
 */
tflite.SubOptions.getRootAsSubOptions = function(bb, obj) {
  return (obj || new tflite.SubOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.SubOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SubOptions.startSubOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.SubOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(0, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SubOptions.endSubOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.DivOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.DivOptions}
 */
tflite.DivOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.DivOptions=} obj
 * @returns {tflite.DivOptions}
 */
tflite.DivOptions.getRootAsDivOptions = function(bb, obj) {
  return (obj || new tflite.DivOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.ActivationFunctionType}
 */
tflite.DivOptions.prototype.fusedActivationFunction = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.ActivationFunctionType.NONE;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.DivOptions.startDivOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.ActivationFunctionType} fusedActivationFunction
 */
tflite.DivOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
  builder.addFieldInt8(0, fusedActivationFunction, tflite.ActivationFunctionType.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.DivOptions.endDivOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.TopKV2Options = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.TopKV2Options}
 */
tflite.TopKV2Options.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.TopKV2Options=} obj
 * @returns {tflite.TopKV2Options}
 */
tflite.TopKV2Options.getRootAsTopKV2Options = function(bb, obj) {
  return (obj || new tflite.TopKV2Options).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.TopKV2Options.startTopKV2Options = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.TopKV2Options.endTopKV2Options = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.EmbeddingLookupSparseOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.EmbeddingLookupSparseOptions}
 */
tflite.EmbeddingLookupSparseOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.EmbeddingLookupSparseOptions=} obj
 * @returns {tflite.EmbeddingLookupSparseOptions}
 */
tflite.EmbeddingLookupSparseOptions.getRootAsEmbeddingLookupSparseOptions = function(bb, obj) {
  return (obj || new tflite.EmbeddingLookupSparseOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.CombinerType}
 */
tflite.EmbeddingLookupSparseOptions.prototype.combiner = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.CombinerType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.CombinerType.SUM;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.EmbeddingLookupSparseOptions.startEmbeddingLookupSparseOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.CombinerType} combiner
 */
tflite.EmbeddingLookupSparseOptions.addCombiner = function(builder, combiner) {
  builder.addFieldInt8(0, combiner, tflite.CombinerType.SUM);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.EmbeddingLookupSparseOptions.endEmbeddingLookupSparseOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.GatherOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.GatherOptions}
 */
tflite.GatherOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.GatherOptions=} obj
 * @returns {tflite.GatherOptions}
 */
tflite.GatherOptions.getRootAsGatherOptions = function(bb, obj) {
  return (obj || new tflite.GatherOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.GatherOptions.prototype.axis = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.GatherOptions.startGatherOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} axis
 */
tflite.GatherOptions.addAxis = function(builder, axis) {
  builder.addFieldInt32(0, axis, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.GatherOptions.endGatherOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.TransposeOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.TransposeOptions}
 */
tflite.TransposeOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.TransposeOptions=} obj
 * @returns {tflite.TransposeOptions}
 */
tflite.TransposeOptions.getRootAsTransposeOptions = function(bb, obj) {
  return (obj || new tflite.TransposeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.TransposeOptions.startTransposeOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.TransposeOptions.endTransposeOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.ExpOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.ExpOptions}
 */
tflite.ExpOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.ExpOptions=} obj
 * @returns {tflite.ExpOptions}
 */
tflite.ExpOptions.getRootAsExpOptions = function(bb, obj) {
  return (obj || new tflite.ExpOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.ExpOptions.startExpOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.ExpOptions.endExpOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.MeanOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.MeanOptions}
 */
tflite.MeanOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.MeanOptions=} obj
 * @returns {tflite.MeanOptions}
 */
tflite.MeanOptions.getRootAsMeanOptions = function(bb, obj) {
  return (obj || new tflite.MeanOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {boolean}
 */
tflite.MeanOptions.prototype.keepDims = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.MeanOptions.startMeanOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {boolean} keepDims
 */
tflite.MeanOptions.addKeepDims = function(builder, keepDims) {
  builder.addFieldInt8(0, +keepDims, +false);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.MeanOptions.endMeanOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SqueezeOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SqueezeOptions}
 */
tflite.SqueezeOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SqueezeOptions=} obj
 * @returns {tflite.SqueezeOptions}
 */
tflite.SqueezeOptions.getRootAsSqueezeOptions = function(bb, obj) {
  return (obj || new tflite.SqueezeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.SqueezeOptions.prototype.squeezeDims = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.SqueezeOptions.prototype.squeezeDimsLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int32Array}
 */
tflite.SqueezeOptions.prototype.squeezeDimsArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SqueezeOptions.startSqueezeOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} squeezeDimsOffset
 */
tflite.SqueezeOptions.addSqueezeDims = function(builder, squeezeDimsOffset) {
  builder.addFieldOffset(0, squeezeDimsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.SqueezeOptions.createSqueezeDimsVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.SqueezeOptions.startSqueezeDimsVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SqueezeOptions.endSqueezeOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SplitOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SplitOptions}
 */
tflite.SplitOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SplitOptions=} obj
 * @returns {tflite.SplitOptions}
 */
tflite.SplitOptions.getRootAsSplitOptions = function(bb, obj) {
  return (obj || new tflite.SplitOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.SplitOptions.prototype.numSplits = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SplitOptions.startSplitOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numSplits
 */
tflite.SplitOptions.addNumSplits = function(builder, numSplits) {
  builder.addFieldInt32(0, numSplits, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SplitOptions.endSplitOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.StridedSliceOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.StridedSliceOptions}
 */
tflite.StridedSliceOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.StridedSliceOptions=} obj
 * @returns {tflite.StridedSliceOptions}
 */
tflite.StridedSliceOptions.getRootAsStridedSliceOptions = function(bb, obj) {
  return (obj || new tflite.StridedSliceOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.StridedSliceOptions.prototype.beginMask = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.StridedSliceOptions.prototype.endMask = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.StridedSliceOptions.prototype.ellipsisMask = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.StridedSliceOptions.prototype.newAxisMask = function() {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.StridedSliceOptions.prototype.shrinkAxisMask = function() {
  var offset = this.bb.__offset(this.bb_pos, 12);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.StridedSliceOptions.startStridedSliceOptions = function(builder) {
  builder.startObject(5);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} beginMask
 */
tflite.StridedSliceOptions.addBeginMask = function(builder, beginMask) {
  builder.addFieldInt32(0, beginMask, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} endMask
 */
tflite.StridedSliceOptions.addEndMask = function(builder, endMask) {
  builder.addFieldInt32(1, endMask, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} ellipsisMask
 */
tflite.StridedSliceOptions.addEllipsisMask = function(builder, ellipsisMask) {
  builder.addFieldInt32(2, ellipsisMask, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} newAxisMask
 */
tflite.StridedSliceOptions.addNewAxisMask = function(builder, newAxisMask) {
  builder.addFieldInt32(3, newAxisMask, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} shrinkAxisMask
 */
tflite.StridedSliceOptions.addShrinkAxisMask = function(builder, shrinkAxisMask) {
  builder.addFieldInt32(4, shrinkAxisMask, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.StridedSliceOptions.endStridedSliceOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.LogSoftmaxOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.LogSoftmaxOptions}
 */
tflite.LogSoftmaxOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.LogSoftmaxOptions=} obj
 * @returns {tflite.LogSoftmaxOptions}
 */
tflite.LogSoftmaxOptions.getRootAsLogSoftmaxOptions = function(bb, obj) {
  return (obj || new tflite.LogSoftmaxOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.LogSoftmaxOptions.startLogSoftmaxOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.LogSoftmaxOptions.endLogSoftmaxOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.CastOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.CastOptions}
 */
tflite.CastOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.CastOptions=} obj
 * @returns {tflite.CastOptions}
 */
tflite.CastOptions.getRootAsCastOptions = function(bb, obj) {
  return (obj || new tflite.CastOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.TensorType}
 */
tflite.CastOptions.prototype.inDataType = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.TensorType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.TensorType.FLOAT32;
};

/**
 * @returns {tflite.TensorType}
 */
tflite.CastOptions.prototype.outDataType = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? /** @type {tflite.TensorType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.TensorType.FLOAT32;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.CastOptions.startCastOptions = function(builder) {
  builder.startObject(2);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.TensorType} inDataType
 */
tflite.CastOptions.addInDataType = function(builder, inDataType) {
  builder.addFieldInt8(0, inDataType, tflite.TensorType.FLOAT32);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.TensorType} outDataType
 */
tflite.CastOptions.addOutDataType = function(builder, outDataType) {
  builder.addFieldInt8(1, outDataType, tflite.TensorType.FLOAT32);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.CastOptions.endCastOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.DequantizeOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.DequantizeOptions}
 */
tflite.DequantizeOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.DequantizeOptions=} obj
 * @returns {tflite.DequantizeOptions}
 */
tflite.DequantizeOptions.getRootAsDequantizeOptions = function(bb, obj) {
  return (obj || new tflite.DequantizeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.DequantizeOptions.startDequantizeOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.DequantizeOptions.endDequantizeOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.MaximumMinimumOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.MaximumMinimumOptions}
 */
tflite.MaximumMinimumOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.MaximumMinimumOptions=} obj
 * @returns {tflite.MaximumMinimumOptions}
 */
tflite.MaximumMinimumOptions.getRootAsMaximumMinimumOptions = function(bb, obj) {
  return (obj || new tflite.MaximumMinimumOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.MaximumMinimumOptions.startMaximumMinimumOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.MaximumMinimumOptions.endMaximumMinimumOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.TileOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.TileOptions}
 */
tflite.TileOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.TileOptions=} obj
 * @returns {tflite.TileOptions}
 */
tflite.TileOptions.getRootAsTileOptions = function(bb, obj) {
  return (obj || new tflite.TileOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.TileOptions.startTileOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.TileOptions.endTileOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.ArgMaxOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.ArgMaxOptions}
 */
tflite.ArgMaxOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.ArgMaxOptions=} obj
 * @returns {tflite.ArgMaxOptions}
 */
tflite.ArgMaxOptions.getRootAsArgMaxOptions = function(bb, obj) {
  return (obj || new tflite.ArgMaxOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.TensorType}
 */
tflite.ArgMaxOptions.prototype.outputType = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.TensorType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.TensorType.FLOAT32;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.ArgMaxOptions.startArgMaxOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.TensorType} outputType
 */
tflite.ArgMaxOptions.addOutputType = function(builder, outputType) {
  builder.addFieldInt8(0, outputType, tflite.TensorType.FLOAT32);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.ArgMaxOptions.endArgMaxOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.GreaterOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.GreaterOptions}
 */
tflite.GreaterOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.GreaterOptions=} obj
 * @returns {tflite.GreaterOptions}
 */
tflite.GreaterOptions.getRootAsGreaterOptions = function(bb, obj) {
  return (obj || new tflite.GreaterOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.GreaterOptions.startGreaterOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.GreaterOptions.endGreaterOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.GreaterEqualOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.GreaterEqualOptions}
 */
tflite.GreaterEqualOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.GreaterEqualOptions=} obj
 * @returns {tflite.GreaterEqualOptions}
 */
tflite.GreaterEqualOptions.getRootAsGreaterEqualOptions = function(bb, obj) {
  return (obj || new tflite.GreaterEqualOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.GreaterEqualOptions.startGreaterEqualOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.GreaterEqualOptions.endGreaterEqualOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.LessOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.LessOptions}
 */
tflite.LessOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.LessOptions=} obj
 * @returns {tflite.LessOptions}
 */
tflite.LessOptions.getRootAsLessOptions = function(bb, obj) {
  return (obj || new tflite.LessOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.LessOptions.startLessOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.LessOptions.endLessOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.LessEqualOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.LessEqualOptions}
 */
tflite.LessEqualOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.LessEqualOptions=} obj
 * @returns {tflite.LessEqualOptions}
 */
tflite.LessEqualOptions.getRootAsLessEqualOptions = function(bb, obj) {
  return (obj || new tflite.LessEqualOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.LessEqualOptions.startLessEqualOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.LessEqualOptions.endLessEqualOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.NegOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.NegOptions}
 */
tflite.NegOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.NegOptions=} obj
 * @returns {tflite.NegOptions}
 */
tflite.NegOptions.getRootAsNegOptions = function(bb, obj) {
  return (obj || new tflite.NegOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.NegOptions.startNegOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.NegOptions.endNegOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SelectOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SelectOptions}
 */
tflite.SelectOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SelectOptions=} obj
 * @returns {tflite.SelectOptions}
 */
tflite.SelectOptions.getRootAsSelectOptions = function(bb, obj) {
  return (obj || new tflite.SelectOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SelectOptions.startSelectOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SelectOptions.endSelectOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SliceOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SliceOptions}
 */
tflite.SliceOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SliceOptions=} obj
 * @returns {tflite.SliceOptions}
 */
tflite.SliceOptions.getRootAsSliceOptions = function(bb, obj) {
  return (obj || new tflite.SliceOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SliceOptions.startSliceOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SliceOptions.endSliceOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.TransposeConvOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.TransposeConvOptions}
 */
tflite.TransposeConvOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.TransposeConvOptions=} obj
 * @returns {tflite.TransposeConvOptions}
 */
tflite.TransposeConvOptions.getRootAsTransposeConvOptions = function(bb, obj) {
  return (obj || new tflite.TransposeConvOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.Padding}
 */
tflite.TransposeConvOptions.prototype.padding = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.Padding} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.Padding.SAME;
};

/**
 * @returns {number}
 */
tflite.TransposeConvOptions.prototype.strideW = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @returns {number}
 */
tflite.TransposeConvOptions.prototype.strideH = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.TransposeConvOptions.startTransposeConvOptions = function(builder) {
  builder.startObject(3);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.Padding} padding
 */
tflite.TransposeConvOptions.addPadding = function(builder, padding) {
  builder.addFieldInt8(0, padding, tflite.Padding.SAME);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} strideW
 */
tflite.TransposeConvOptions.addStrideW = function(builder, strideW) {
  builder.addFieldInt32(1, strideW, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} strideH
 */
tflite.TransposeConvOptions.addStrideH = function(builder, strideH) {
  builder.addFieldInt32(2, strideH, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.TransposeConvOptions.endTransposeConvOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.ExpandDimsOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.ExpandDimsOptions}
 */
tflite.ExpandDimsOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.ExpandDimsOptions=} obj
 * @returns {tflite.ExpandDimsOptions}
 */
tflite.ExpandDimsOptions.getRootAsExpandDimsOptions = function(bb, obj) {
  return (obj || new tflite.ExpandDimsOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.ExpandDimsOptions.startExpandDimsOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.ExpandDimsOptions.endExpandDimsOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SparseToDenseOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SparseToDenseOptions}
 */
tflite.SparseToDenseOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SparseToDenseOptions=} obj
 * @returns {tflite.SparseToDenseOptions}
 */
tflite.SparseToDenseOptions.getRootAsSparseToDenseOptions = function(bb, obj) {
  return (obj || new tflite.SparseToDenseOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {boolean}
 */
tflite.SparseToDenseOptions.prototype.validateIndices = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SparseToDenseOptions.startSparseToDenseOptions = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {boolean} validateIndices
 */
tflite.SparseToDenseOptions.addValidateIndices = function(builder, validateIndices) {
  builder.addFieldInt8(0, +validateIndices, +false);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SparseToDenseOptions.endSparseToDenseOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.EqualOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.EqualOptions}
 */
tflite.EqualOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.EqualOptions=} obj
 * @returns {tflite.EqualOptions}
 */
tflite.EqualOptions.getRootAsEqualOptions = function(bb, obj) {
  return (obj || new tflite.EqualOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.EqualOptions.startEqualOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.EqualOptions.endEqualOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.NotEqualOptions = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.NotEqualOptions}
 */
tflite.NotEqualOptions.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.NotEqualOptions=} obj
 * @returns {tflite.NotEqualOptions}
 */
tflite.NotEqualOptions.getRootAsNotEqualOptions = function(bb, obj) {
  return (obj || new tflite.NotEqualOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.NotEqualOptions.startNotEqualOptions = function(builder) {
  builder.startObject(0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.NotEqualOptions.endNotEqualOptions = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.OperatorCode = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.OperatorCode}
 */
tflite.OperatorCode.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.OperatorCode=} obj
 * @returns {tflite.OperatorCode}
 */
tflite.OperatorCode.getRootAsOperatorCode = function(bb, obj) {
  return (obj || new tflite.OperatorCode).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {tflite.BuiltinOperator}
 */
tflite.OperatorCode.prototype.builtinCode = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? /** @type {tflite.BuiltinOperator} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.BuiltinOperator.ADD;
};

/**
 * @param {flatbuffers.Encoding=} optionalEncoding
 * @returns {string|Uint8Array|null}
 */
tflite.OperatorCode.prototype.customCode = function(optionalEncoding) {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
};

/**
 * @returns {number}
 */
tflite.OperatorCode.prototype.version = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 1;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.OperatorCode.startOperatorCode = function(builder) {
  builder.startObject(3);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.BuiltinOperator} builtinCode
 */
tflite.OperatorCode.addBuiltinCode = function(builder, builtinCode) {
  builder.addFieldInt8(0, builtinCode, tflite.BuiltinOperator.ADD);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} customCodeOffset
 */
tflite.OperatorCode.addCustomCode = function(builder, customCodeOffset) {
  builder.addFieldOffset(1, customCodeOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} version
 */
tflite.OperatorCode.addVersion = function(builder, version) {
  builder.addFieldInt32(2, version, 1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.OperatorCode.endOperatorCode = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.Operator = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.Operator}
 */
tflite.Operator.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.Operator=} obj
 * @returns {tflite.Operator}
 */
tflite.Operator.getRootAsOperator = function(bb, obj) {
  return (obj || new tflite.Operator).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
tflite.Operator.prototype.opcodeIndex = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readUint32(this.bb_pos + offset) : 0;
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.Operator.prototype.inputs = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.Operator.prototype.inputsLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int32Array}
 */
tflite.Operator.prototype.inputsArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.Operator.prototype.outputs = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.Operator.prototype.outputsLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int32Array}
 */
tflite.Operator.prototype.outputsArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @returns {tflite.BuiltinOptions}
 */
tflite.Operator.prototype.builtinOptionsType = function() {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? /** @type {tflite.BuiltinOptions} */ (this.bb.readUint8(this.bb_pos + offset)) : tflite.BuiltinOptions.NONE;
};

/**
 * @param {flatbuffers.Table} obj
 * @returns {?flatbuffers.Table}
 */
tflite.Operator.prototype.builtinOptions = function(obj) {
  var offset = this.bb.__offset(this.bb_pos, 12);
  return offset ? this.bb.__union(obj, this.bb_pos + offset) : null;
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.Operator.prototype.customOptions = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 14);
  return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
};

/**
 * @returns {number}
 */
tflite.Operator.prototype.customOptionsLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 14);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Uint8Array}
 */
tflite.Operator.prototype.customOptionsArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 14);
  return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @returns {tflite.CustomOptionsFormat}
 */
tflite.Operator.prototype.customOptionsFormat = function() {
  var offset = this.bb.__offset(this.bb_pos, 16);
  return offset ? /** @type {tflite.CustomOptionsFormat} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite.CustomOptionsFormat.FLEXBUFFERS;
};

/**
 * @param {number} index
 * @returns {boolean}
 */
tflite.Operator.prototype.mutatingVariableInputs = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 18);
  return offset ? !!this.bb.readInt8(this.bb.__vector(this.bb_pos + offset) + index) : false;
};

/**
 * @returns {number}
 */
tflite.Operator.prototype.mutatingVariableInputsLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 18);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int8Array}
 */
tflite.Operator.prototype.mutatingVariableInputsArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 18);
  return offset ? new Int8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.Operator.startOperator = function(builder) {
  builder.startObject(8);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} opcodeIndex
 */
tflite.Operator.addOpcodeIndex = function(builder, opcodeIndex) {
  builder.addFieldInt32(0, opcodeIndex, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} inputsOffset
 */
tflite.Operator.addInputs = function(builder, inputsOffset) {
  builder.addFieldOffset(1, inputsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.Operator.createInputsVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.Operator.startInputsVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} outputsOffset
 */
tflite.Operator.addOutputs = function(builder, outputsOffset) {
  builder.addFieldOffset(2, outputsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.Operator.createOutputsVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.Operator.startOutputsVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.BuiltinOptions} builtinOptionsType
 */
tflite.Operator.addBuiltinOptionsType = function(builder, builtinOptionsType) {
  builder.addFieldInt8(3, builtinOptionsType, tflite.BuiltinOptions.NONE);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} builtinOptionsOffset
 */
tflite.Operator.addBuiltinOptions = function(builder, builtinOptionsOffset) {
  builder.addFieldOffset(4, builtinOptionsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} customOptionsOffset
 */
tflite.Operator.addCustomOptions = function(builder, customOptionsOffset) {
  builder.addFieldOffset(5, customOptionsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.Operator.createCustomOptionsVector = function(builder, data) {
  builder.startVector(1, data.length, 1);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt8(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.Operator.startCustomOptionsVector = function(builder, numElems) {
  builder.startVector(1, numElems, 1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {tflite.CustomOptionsFormat} customOptionsFormat
 */
tflite.Operator.addCustomOptionsFormat = function(builder, customOptionsFormat) {
  builder.addFieldInt8(6, customOptionsFormat, tflite.CustomOptionsFormat.FLEXBUFFERS);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} mutatingVariableInputsOffset
 */
tflite.Operator.addMutatingVariableInputs = function(builder, mutatingVariableInputsOffset) {
  builder.addFieldOffset(7, mutatingVariableInputsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<boolean>} data
 * @returns {flatbuffers.Offset}
 */
tflite.Operator.createMutatingVariableInputsVector = function(builder, data) {
  builder.startVector(1, data.length, 1);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt8(+data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.Operator.startMutatingVariableInputsVector = function(builder, numElems) {
  builder.startVector(1, numElems, 1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.Operator.endOperator = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.SubGraph = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.SubGraph}
 */
tflite.SubGraph.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.SubGraph=} obj
 * @returns {tflite.SubGraph}
 */
tflite.SubGraph.getRootAsSubGraph = function(bb, obj) {
  return (obj || new tflite.SubGraph).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {number} index
 * @param {tflite.Tensor=} obj
 * @returns {tflite.Tensor}
 */
tflite.SubGraph.prototype.tensors = function(index, obj) {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? (obj || new tflite.Tensor).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
};

/**
 * @returns {number}
 */
tflite.SubGraph.prototype.tensorsLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.SubGraph.prototype.inputs = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.SubGraph.prototype.inputsLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int32Array}
 */
tflite.SubGraph.prototype.inputsArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.SubGraph.prototype.outputs = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.SubGraph.prototype.outputsLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int32Array}
 */
tflite.SubGraph.prototype.outputsArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {number} index
 * @param {tflite.Operator=} obj
 * @returns {tflite.Operator}
 */
tflite.SubGraph.prototype.operators = function(index, obj) {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? (obj || new tflite.Operator).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
};

/**
 * @returns {number}
 */
tflite.SubGraph.prototype.operatorsLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @param {flatbuffers.Encoding=} optionalEncoding
 * @returns {string|Uint8Array|null}
 */
tflite.SubGraph.prototype.name = function(optionalEncoding) {
  var offset = this.bb.__offset(this.bb_pos, 12);
  return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.SubGraph.startSubGraph = function(builder) {
  builder.startObject(5);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} tensorsOffset
 */
tflite.SubGraph.addTensors = function(builder, tensorsOffset) {
  builder.addFieldOffset(0, tensorsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<flatbuffers.Offset>} data
 * @returns {flatbuffers.Offset}
 */
tflite.SubGraph.createTensorsVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addOffset(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.SubGraph.startTensorsVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} inputsOffset
 */
tflite.SubGraph.addInputs = function(builder, inputsOffset) {
  builder.addFieldOffset(1, inputsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.SubGraph.createInputsVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.SubGraph.startInputsVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} outputsOffset
 */
tflite.SubGraph.addOutputs = function(builder, outputsOffset) {
  builder.addFieldOffset(2, outputsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.SubGraph.createOutputsVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.SubGraph.startOutputsVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} operatorsOffset
 */
tflite.SubGraph.addOperators = function(builder, operatorsOffset) {
  builder.addFieldOffset(3, operatorsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<flatbuffers.Offset>} data
 * @returns {flatbuffers.Offset}
 */
tflite.SubGraph.createOperatorsVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addOffset(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.SubGraph.startOperatorsVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} nameOffset
 */
tflite.SubGraph.addName = function(builder, nameOffset) {
  builder.addFieldOffset(4, nameOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.SubGraph.endSubGraph = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.Buffer = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.Buffer}
 */
tflite.Buffer.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.Buffer=} obj
 * @returns {tflite.Buffer}
 */
tflite.Buffer.getRootAsBuffer = function(bb, obj) {
  return (obj || new tflite.Buffer).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.Buffer.prototype.data = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
};

/**
 * @returns {number}
 */
tflite.Buffer.prototype.dataLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Uint8Array}
 */
tflite.Buffer.prototype.dataArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.Buffer.startBuffer = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} dataOffset
 */
tflite.Buffer.addData = function(builder, dataOffset) {
  builder.addFieldOffset(0, dataOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.Buffer.createDataVector = function(builder, data) {
  builder.startVector(1, data.length, 1);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt8(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.Buffer.startDataVector = function(builder, numElems) {
  builder.startVector(1, numElems, 1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.Buffer.endBuffer = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @constructor
 */
tflite.Model = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {tflite.Model}
 */
tflite.Model.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {tflite.Model=} obj
 * @returns {tflite.Model}
 */
tflite.Model.getRootAsModel = function(bb, obj) {
  return (obj || new tflite.Model).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {boolean}
 */
tflite.Model.bufferHasIdentifier = function(bb) {
  return bb.__has_identifier('TFL3');
};

/**
 * @returns {number}
 */
tflite.Model.prototype.version = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readUint32(this.bb_pos + offset) : 0;
};

/**
 * @param {number} index
 * @param {tflite.OperatorCode=} obj
 * @returns {tflite.OperatorCode}
 */
tflite.Model.prototype.operatorCodes = function(index, obj) {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? (obj || new tflite.OperatorCode).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
};

/**
 * @returns {number}
 */
tflite.Model.prototype.operatorCodesLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 6);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @param {number} index
 * @param {tflite.SubGraph=} obj
 * @returns {tflite.SubGraph}
 */
tflite.Model.prototype.subgraphs = function(index, obj) {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? (obj || new tflite.SubGraph).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
};

/**
 * @returns {number}
 */
tflite.Model.prototype.subgraphsLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 8);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @param {flatbuffers.Encoding=} optionalEncoding
 * @returns {string|Uint8Array|null}
 */
tflite.Model.prototype.description = function(optionalEncoding) {
  var offset = this.bb.__offset(this.bb_pos, 10);
  return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
};

/**
 * @param {number} index
 * @param {tflite.Buffer=} obj
 * @returns {tflite.Buffer}
 */
tflite.Model.prototype.buffers = function(index, obj) {
  var offset = this.bb.__offset(this.bb_pos, 12);
  return offset ? (obj || new tflite.Buffer).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
};

/**
 * @returns {number}
 */
tflite.Model.prototype.buffersLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 12);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @param {number} index
 * @returns {number}
 */
tflite.Model.prototype.metadataBuffer = function(index) {
  var offset = this.bb.__offset(this.bb_pos, 14);
  return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0;
};

/**
 * @returns {number}
 */
tflite.Model.prototype.metadataBufferLength = function() {
  var offset = this.bb.__offset(this.bb_pos, 14);
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
};

/**
 * @returns {Int32Array}
 */
tflite.Model.prototype.metadataBufferArray = function() {
  var offset = this.bb.__offset(this.bb_pos, 14);
  return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
};

/**
 * @param {flatbuffers.Builder} builder
 */
tflite.Model.startModel = function(builder) {
  builder.startObject(6);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} version
 */
tflite.Model.addVersion = function(builder, version) {
  builder.addFieldInt32(0, version, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} operatorCodesOffset
 */
tflite.Model.addOperatorCodes = function(builder, operatorCodesOffset) {
  builder.addFieldOffset(1, operatorCodesOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<flatbuffers.Offset>} data
 * @returns {flatbuffers.Offset}
 */
tflite.Model.createOperatorCodesVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addOffset(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.Model.startOperatorCodesVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} subgraphsOffset
 */
tflite.Model.addSubgraphs = function(builder, subgraphsOffset) {
  builder.addFieldOffset(2, subgraphsOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<flatbuffers.Offset>} data
 * @returns {flatbuffers.Offset}
 */
tflite.Model.createSubgraphsVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addOffset(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.Model.startSubgraphsVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} descriptionOffset
 */
tflite.Model.addDescription = function(builder, descriptionOffset) {
  builder.addFieldOffset(3, descriptionOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} buffersOffset
 */
tflite.Model.addBuffers = function(builder, buffersOffset) {
  builder.addFieldOffset(4, buffersOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<flatbuffers.Offset>} data
 * @returns {flatbuffers.Offset}
 */
tflite.Model.createBuffersVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addOffset(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.Model.startBuffersVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} metadataBufferOffset
 */
tflite.Model.addMetadataBuffer = function(builder, metadataBufferOffset) {
  builder.addFieldOffset(5, metadataBufferOffset, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {Array.<number>} data
 * @returns {flatbuffers.Offset}
 */
tflite.Model.createMetadataBufferVector = function(builder, data) {
  builder.startVector(4, data.length, 4);
  for (var i = data.length - 1; i >= 0; i--) {
    builder.addInt32(data[i]);
  }
  return builder.endVector();
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} numElems
 */
tflite.Model.startMetadataBufferVector = function(builder, numElems) {
  builder.startVector(4, numElems, 4);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
tflite.Model.endModel = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {flatbuffers.Offset} offset
 */
tflite.Model.finishModelBuffer = function(builder, offset) {
  builder.finish(offset, 'TFL3');
};

// Exports for Node.js and RequireJS
this.tflite = tflite;
