text: // automatically generated by the FlatBuffers compiler, do not modify
  
  /**
   * @const
   * @namespace
   */
  var tflite_schema = tflite_schema || {};
  
  /**
   * @enum
   */
  tflite_schema.TensorType = {
    FLOAT32: 0, 0: 'FLOAT32',
    FLOAT16: 1, 1: 'FLOAT16',
    INT32: 2, 2: 'INT32',
    UINT8: 3, 3: 'UINT8',
    INT64: 4, 4: 'INT64',
    STRING: 5, 5: 'STRING',
    BOOL: 6, 6: 'BOOL',
    INT16: 7, 7: 'INT16',
    COMPLEX64: 8, 8: 'COMPLEX64',
    INT8: 9, 9: 'INT8'
  };
  
  /**
   * @enum
   */
  tflite_schema.QuantizationDetails = {
    NONE: 0, 0: 'NONE',
    CustomQuantization: 1, 1: 'CustomQuantization'
  };
  
  /**
   * @enum
   */
  tflite_schema.BuiltinOperator = {
    ADD: 0, 0: 'ADD',
    AVERAGE_POOL_2D: 1, 1: 'AVERAGE_POOL_2D',
    CONCATENATION: 2, 2: 'CONCATENATION',
    CONV_2D: 3, 3: 'CONV_2D',
    DEPTHWISE_CONV_2D: 4, 4: 'DEPTHWISE_CONV_2D',
    DEQUANTIZE: 6, 6: 'DEQUANTIZE',
    EMBEDDING_LOOKUP: 7, 7: 'EMBEDDING_LOOKUP',
    FLOOR: 8, 8: 'FLOOR',
    FULLY_CONNECTED: 9, 9: 'FULLY_CONNECTED',
    HASHTABLE_LOOKUP: 10, 10: 'HASHTABLE_LOOKUP',
    L2_NORMALIZATION: 11, 11: 'L2_NORMALIZATION',
    L2_POOL_2D: 12, 12: 'L2_POOL_2D',
    LOCAL_RESPONSE_NORMALIZATION: 13, 13: 'LOCAL_RESPONSE_NORMALIZATION',
    LOGISTIC: 14, 14: 'LOGISTIC',
    LSH_PROJECTION: 15, 15: 'LSH_PROJECTION',
    LSTM: 16, 16: 'LSTM',
    MAX_POOL_2D: 17, 17: 'MAX_POOL_2D',
    MUL: 18, 18: 'MUL',
    RELU: 19, 19: 'RELU',
    RELU_N1_TO_1: 20, 20: 'RELU_N1_TO_1',
    RELU6: 21, 21: 'RELU6',
    RESHAPE: 22, 22: 'RESHAPE',
    RESIZE_BILINEAR: 23, 23: 'RESIZE_BILINEAR',
    RNN: 24, 24: 'RNN',
    SOFTMAX: 25, 25: 'SOFTMAX',
    SPACE_TO_DEPTH: 26, 26: 'SPACE_TO_DEPTH',
    SVDF: 27, 27: 'SVDF',
    TANH: 28, 28: 'TANH',
    CONCAT_EMBEDDINGS: 29, 29: 'CONCAT_EMBEDDINGS',
    SKIP_GRAM: 30, 30: 'SKIP_GRAM',
    CALL: 31, 31: 'CALL',
    CUSTOM: 32, 32: 'CUSTOM',
    EMBEDDING_LOOKUP_SPARSE: 33, 33: 'EMBEDDING_LOOKUP_SPARSE',
    PAD: 34, 34: 'PAD',
    UNIDIRECTIONAL_SEQUENCE_RNN: 35, 35: 'UNIDIRECTIONAL_SEQUENCE_RNN',
    GATHER: 36, 36: 'GATHER',
    BATCH_TO_SPACE_ND: 37, 37: 'BATCH_TO_SPACE_ND',
    SPACE_TO_BATCH_ND: 38, 38: 'SPACE_TO_BATCH_ND',
    TRANSPOSE: 39, 39: 'TRANSPOSE',
    MEAN: 40, 40: 'MEAN',
    SUB: 41, 41: 'SUB',
    DIV: 42, 42: 'DIV',
    SQUEEZE: 43, 43: 'SQUEEZE',
    UNIDIRECTIONAL_SEQUENCE_LSTM: 44, 44: 'UNIDIRECTIONAL_SEQUENCE_LSTM',
    STRIDED_SLICE: 45, 45: 'STRIDED_SLICE',
    BIDIRECTIONAL_SEQUENCE_RNN: 46, 46: 'BIDIRECTIONAL_SEQUENCE_RNN',
    EXP: 47, 47: 'EXP',
    TOPK_V2: 48, 48: 'TOPK_V2',
    SPLIT: 49, 49: 'SPLIT',
    LOG_SOFTMAX: 50, 50: 'LOG_SOFTMAX',
    DELEGATE: 51, 51: 'DELEGATE',
    BIDIRECTIONAL_SEQUENCE_LSTM: 52, 52: 'BIDIRECTIONAL_SEQUENCE_LSTM',
    CAST: 53, 53: 'CAST',
    PRELU: 54, 54: 'PRELU',
    MAXIMUM: 55, 55: 'MAXIMUM',
    ARG_MAX: 56, 56: 'ARG_MAX',
    MINIMUM: 57, 57: 'MINIMUM',
    LESS: 58, 58: 'LESS',
    NEG: 59, 59: 'NEG',
    PADV2: 60, 60: 'PADV2',
    GREATER: 61, 61: 'GREATER',
    GREATER_EQUAL: 62, 62: 'GREATER_EQUAL',
    LESS_EQUAL: 63, 63: 'LESS_EQUAL',
    SELECT: 64, 64: 'SELECT',
    SLICE: 65, 65: 'SLICE',
    SIN: 66, 66: 'SIN',
    TRANSPOSE_CONV: 67, 67: 'TRANSPOSE_CONV',
    SPARSE_TO_DENSE: 68, 68: 'SPARSE_TO_DENSE',
    TILE: 69, 69: 'TILE',
    EXPAND_DIMS: 70, 70: 'EXPAND_DIMS',
    EQUAL: 71, 71: 'EQUAL',
    NOT_EQUAL: 72, 72: 'NOT_EQUAL',
    LOG: 73, 73: 'LOG',
    SUM: 74, 74: 'SUM',
    SQRT: 75, 75: 'SQRT',
    RSQRT: 76, 76: 'RSQRT',
    SHAPE: 77, 77: 'SHAPE',
    POW: 78, 78: 'POW',
    ARG_MIN: 79, 79: 'ARG_MIN',
    FAKE_QUANT: 80, 80: 'FAKE_QUANT',
    REDUCE_PROD: 81, 81: 'REDUCE_PROD',
    REDUCE_MAX: 82, 82: 'REDUCE_MAX',
    PACK: 83, 83: 'PACK',
    LOGICAL_OR: 84, 84: 'LOGICAL_OR',
    ONE_HOT: 85, 85: 'ONE_HOT',
    LOGICAL_AND: 86, 86: 'LOGICAL_AND',
    LOGICAL_NOT: 87, 87: 'LOGICAL_NOT',
    UNPACK: 88, 88: 'UNPACK',
    REDUCE_MIN: 89, 89: 'REDUCE_MIN',
    FLOOR_DIV: 90, 90: 'FLOOR_DIV',
    REDUCE_ANY: 91, 91: 'REDUCE_ANY',
    SQUARE: 92, 92: 'SQUARE',
    ZEROS_LIKE: 93, 93: 'ZEROS_LIKE',
    FILL: 94, 94: 'FILL',
    FLOOR_MOD: 95, 95: 'FLOOR_MOD',
    RANGE: 96, 96: 'RANGE',
    RESIZE_NEAREST_NEIGHBOR: 97, 97: 'RESIZE_NEAREST_NEIGHBOR',
    LEAKY_RELU: 98, 98: 'LEAKY_RELU',
    SQUARED_DIFFERENCE: 99, 99: 'SQUARED_DIFFERENCE',
    MIRROR_PAD: 100, 100: 'MIRROR_PAD'
  };
  
  /**
   * @enum
   */
  tflite_schema.BuiltinOptions = {
    NONE: 0, 0: 'NONE',
    Conv2DOptions: 1, 1: 'Conv2DOptions',
    DepthwiseConv2DOptions: 2, 2: 'DepthwiseConv2DOptions',
    ConcatEmbeddingsOptions: 3, 3: 'ConcatEmbeddingsOptions',
    LSHProjectionOptions: 4, 4: 'LSHProjectionOptions',
    Pool2DOptions: 5, 5: 'Pool2DOptions',
    SVDFOptions: 6, 6: 'SVDFOptions',
    RNNOptions: 7, 7: 'RNNOptions',
    FullyConnectedOptions: 8, 8: 'FullyConnectedOptions',
    SoftmaxOptions: 9, 9: 'SoftmaxOptions',
    ConcatenationOptions: 10, 10: 'ConcatenationOptions',
    AddOptions: 11, 11: 'AddOptions',
    L2NormOptions: 12, 12: 'L2NormOptions',
    LocalResponseNormalizationOptions: 13, 13: 'LocalResponseNormalizationOptions',
    LSTMOptions: 14, 14: 'LSTMOptions',
    ResizeBilinearOptions: 15, 15: 'ResizeBilinearOptions',
    CallOptions: 16, 16: 'CallOptions',
    ReshapeOptions: 17, 17: 'ReshapeOptions',
    SkipGramOptions: 18, 18: 'SkipGramOptions',
    SpaceToDepthOptions: 19, 19: 'SpaceToDepthOptions',
    EmbeddingLookupSparseOptions: 20, 20: 'EmbeddingLookupSparseOptions',
    MulOptions: 21, 21: 'MulOptions',
    PadOptions: 22, 22: 'PadOptions',
    GatherOptions: 23, 23: 'GatherOptions',
    BatchToSpaceNDOptions: 24, 24: 'BatchToSpaceNDOptions',
    SpaceToBatchNDOptions: 25, 25: 'SpaceToBatchNDOptions',
    TransposeOptions: 26, 26: 'TransposeOptions',
    ReducerOptions: 27, 27: 'ReducerOptions',
    SubOptions: 28, 28: 'SubOptions',
    DivOptions: 29, 29: 'DivOptions',
    SqueezeOptions: 30, 30: 'SqueezeOptions',
    SequenceRNNOptions: 31, 31: 'SequenceRNNOptions',
    StridedSliceOptions: 32, 32: 'StridedSliceOptions',
    ExpOptions: 33, 33: 'ExpOptions',
    TopKV2Options: 34, 34: 'TopKV2Options',
    SplitOptions: 35, 35: 'SplitOptions',
    LogSoftmaxOptions: 36, 36: 'LogSoftmaxOptions',
    CastOptions: 37, 37: 'CastOptions',
    DequantizeOptions: 38, 38: 'DequantizeOptions',
    MaximumMinimumOptions: 39, 39: 'MaximumMinimumOptions',
    ArgMaxOptions: 40, 40: 'ArgMaxOptions',
    LessOptions: 41, 41: 'LessOptions',
    NegOptions: 42, 42: 'NegOptions',
    PadV2Options: 43, 43: 'PadV2Options',
    GreaterOptions: 44, 44: 'GreaterOptions',
    GreaterEqualOptions: 45, 45: 'GreaterEqualOptions',
    LessEqualOptions: 46, 46: 'LessEqualOptions',
    SelectOptions: 47, 47: 'SelectOptions',
    SliceOptions: 48, 48: 'SliceOptions',
    TransposeConvOptions: 49, 49: 'TransposeConvOptions',
    SparseToDenseOptions: 50, 50: 'SparseToDenseOptions',
    TileOptions: 51, 51: 'TileOptions',
    ExpandDimsOptions: 52, 52: 'ExpandDimsOptions',
    EqualOptions: 53, 53: 'EqualOptions',
    NotEqualOptions: 54, 54: 'NotEqualOptions',
    ShapeOptions: 55, 55: 'ShapeOptions',
    PowOptions: 56, 56: 'PowOptions',
    ArgMinOptions: 57, 57: 'ArgMinOptions',
    FakeQuantOptions: 58, 58: 'FakeQuantOptions',
    PackOptions: 59, 59: 'PackOptions',
    LogicalOrOptions: 60, 60: 'LogicalOrOptions',
    OneHotOptions: 61, 61: 'OneHotOptions',
    LogicalAndOptions: 62, 62: 'LogicalAndOptions',
    LogicalNotOptions: 63, 63: 'LogicalNotOptions',
    UnpackOptions: 64, 64: 'UnpackOptions',
    FloorDivOptions: 65, 65: 'FloorDivOptions',
    SquareOptions: 66, 66: 'SquareOptions',
    ZerosLikeOptions: 67, 67: 'ZerosLikeOptions',
    FillOptions: 68, 68: 'FillOptions',
    BidirectionalSequenceLSTMOptions: 69, 69: 'BidirectionalSequenceLSTMOptions',
    BidirectionalSequenceRNNOptions: 70, 70: 'BidirectionalSequenceRNNOptions',
    UnidirectionalSequenceLSTMOptions: 71, 71: 'UnidirectionalSequenceLSTMOptions',
    FloorModOptions: 72, 72: 'FloorModOptions',
    RangeOptions: 73, 73: 'RangeOptions',
    ResizeNearestNeighborOptions: 74, 74: 'ResizeNearestNeighborOptions',
    LeakyReluOptions: 75, 75: 'LeakyReluOptions',
    SquaredDifferenceOptions: 76, 76: 'SquaredDifferenceOptions',
    MirrorPadOptions: 77, 77: 'MirrorPadOptions'
  };
  
  /**
   * @enum
   */
  tflite_schema.Padding = {
    SAME: 0, 0: 'SAME',
    VALID: 1, 1: 'VALID'
  };
  
  /**
   * @enum
   */
  tflite_schema.ActivationFunctionType = {
    NONE: 0, 0: 'NONE',
    RELU: 1, 1: 'RELU',
    RELU_N1_TO_1: 2, 2: 'RELU_N1_TO_1',
    RELU6: 3, 3: 'RELU6',
    TANH: 4, 4: 'TANH',
    SIGN_BIT: 5, 5: 'SIGN_BIT'
  };
  
  /**
   * @enum
   */
  tflite_schema.LSHProjectionType = {
    UNKNOWN: 0, 0: 'UNKNOWN',
    SPARSE: 1, 1: 'SPARSE',
    DENSE: 2, 2: 'DENSE'
  };
  
  /**
   * @enum
   */
  tflite_schema.FullyConnectedOptionsWeightsFormat = {
    DEFAULT: 0, 0: 'DEFAULT',
    SHUFFLED4x16INT8: 1, 1: 'SHUFFLED4x16INT8'
  };
  
  /**
   * @enum
   */
  tflite_schema.LSTMKernelType = {
    FULL: 0, 0: 'FULL',
    BASIC: 1, 1: 'BASIC'
  };
  
  /**
   * @enum
   */
  tflite_schema.CombinerType = {
    SUM: 0, 0: 'SUM',
    MEAN: 1, 1: 'MEAN',
    SQRTN: 2, 2: 'SQRTN'
  };
  
  /**
   * @enum
   */
  tflite_schema.MirrorPadMode = {
    REFLECT: 0, 0: 'REFLECT',
    SYMMETRIC: 1, 1: 'SYMMETRIC'
  };
  
  /**
   * @enum
   */
  tflite_schema.CustomOptionsFormat = {
    FLEXBUFFERS: 0, 0: 'FLEXBUFFERS'
  };
  
  /**
   * @constructor
   */
  tflite_schema.CustomQuantization = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.CustomQuantization}
   */
  tflite_schema.CustomQuantization.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.CustomQuantization=} obj
   * @returns {tflite_schema.CustomQuantization}
   */
  tflite_schema.CustomQuantization.getRootAsCustomQuantization = function(bb, obj) {
    return (obj || new tflite_schema.CustomQuantization).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {number} index
   * @returns {number}
   */
  tflite_schema.CustomQuantization.prototype.custom = function(index) {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? this.bb.readInt8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.CustomQuantization.prototype.customLength = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
  };
  
  /**
   * @returns {Int8Array}
   */
  tflite_schema.CustomQuantization.prototype.customArray = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    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_schema.CustomQuantization.startCustomQuantization = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} customOffset
   */
  tflite_schema.CustomQuantization.addCustom = function(builder, customOffset) {
    builder.addFieldOffset(0, customOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.CustomQuantization.createCustomVector = 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_schema.CustomQuantization.startCustomVector = function(builder, numElems) {
    builder.startVector(1, numElems, 1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.CustomQuantization.endCustomQuantization = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.QuantizationParameters = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.QuantizationParameters}
   */
  tflite_schema.QuantizationParameters.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.QuantizationParameters=} obj
   * @returns {tflite_schema.QuantizationParameters}
   */
  tflite_schema.QuantizationParameters.getRootAsQuantizationParameters = function(bb, obj) {
    return (obj || new tflite_schema.QuantizationParameters).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {number} index
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.QuantizationParameters.prototype.zeroPointLength = function() {
    var offset = this.bb.__offset(this.bb_pos, 10);
    return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
  };
  
  /**
   * @returns {tflite_schema.QuantizationDetails}
   */
  tflite_schema.QuantizationParameters.prototype.detailsType = function() {
    var offset = this.bb.__offset(this.bb_pos, 12);
    return offset ? /** @type {tflite_schema.QuantizationDetails} */ (this.bb.readUint8(this.bb_pos + offset)) : tflite_schema.QuantizationDetails.NONE;
  };
  
  /**
   * @param {flatbuffers.Table} obj
   * @returns {?flatbuffers.Table}
   */
  tflite_schema.QuantizationParameters.prototype.details = function(obj) {
    var offset = this.bb.__offset(this.bb_pos, 14);
    return offset ? this.bb.__union(obj, this.bb_pos + offset) : null;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.QuantizationParameters.startQuantizationParameters = function(builder) {
    builder.startObject(6);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} minOffset
   */
  tflite_schema.QuantizationParameters.addMin = function(builder, minOffset) {
    builder.addFieldOffset(0, minOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.QuantizationParameters.startMinVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} maxOffset
   */
  tflite_schema.QuantizationParameters.addMax = function(builder, maxOffset) {
    builder.addFieldOffset(1, maxOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.QuantizationParameters.startMaxVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} scaleOffset
   */
  tflite_schema.QuantizationParameters.addScale = function(builder, scaleOffset) {
    builder.addFieldOffset(2, scaleOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.QuantizationParameters.startScaleVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} zeroPointOffset
   */
  tflite_schema.QuantizationParameters.addZeroPoint = function(builder, zeroPointOffset) {
    builder.addFieldOffset(3, zeroPointOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<flatbuffers.Long>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.QuantizationParameters.startZeroPointVector = function(builder, numElems) {
    builder.startVector(8, numElems, 8);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.QuantizationDetails} detailsType
   */
  tflite_schema.QuantizationParameters.addDetailsType = function(builder, detailsType) {
    builder.addFieldInt8(4, detailsType, tflite_schema.QuantizationDetails.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} detailsOffset
   */
  tflite_schema.QuantizationParameters.addDetails = function(builder, detailsOffset) {
    builder.addFieldOffset(5, detailsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.QuantizationParameters.endQuantizationParameters = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.Tensor = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.Tensor}
   */
  tflite_schema.Tensor.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.Tensor=} obj
   * @returns {tflite_schema.Tensor}
   */
  tflite_schema.Tensor.getRootAsTensor = function(bb, obj) {
    return (obj || new tflite_schema.Tensor).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {number} index
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.TensorType}
   */
  tflite_schema.Tensor.prototype.type = function() {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? /** @type {tflite_schema.TensorType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.TensorType.FLOAT32;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.QuantizationParameters=} obj
   * @returns {tflite_schema.QuantizationParameters|null}
   */
  tflite_schema.Tensor.prototype.quantization = function(obj) {
    var offset = this.bb.__offset(this.bb_pos, 12);
    return offset ? (obj || new tflite_schema.QuantizationParameters).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.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_schema.Tensor.startTensor = function(builder) {
    builder.startObject(6);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} shapeOffset
   */
  tflite_schema.Tensor.addShape = function(builder, shapeOffset) {
    builder.addFieldOffset(0, shapeOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.Tensor.startShapeVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.TensorType} type
   */
  tflite_schema.Tensor.addType = function(builder, type) {
    builder.addFieldInt8(1, type, tflite_schema.TensorType.FLOAT32);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} buffer
   */
  tflite_schema.Tensor.addBuffer = function(builder, buffer) {
    builder.addFieldInt32(2, buffer, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} nameOffset
   */
  tflite_schema.Tensor.addName = function(builder, nameOffset) {
    builder.addFieldOffset(3, nameOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} quantizationOffset
   */
  tflite_schema.Tensor.addQuantization = function(builder, quantizationOffset) {
    builder.addFieldOffset(4, quantizationOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} isVariable
   */
  tflite_schema.Tensor.addIsVariable = function(builder, isVariable) {
    builder.addFieldInt8(5, +isVariable, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.Tensor.endTensor = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.Conv2DOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.Conv2DOptions}
   */
  tflite_schema.Conv2DOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.Conv2DOptions=} obj
   * @returns {tflite_schema.Conv2DOptions}
   */
  tflite_schema.Conv2DOptions.getRootAsConv2DOptions = function(bb, obj) {
    return (obj || new tflite_schema.Conv2DOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.Padding}
   */
  tflite_schema.Conv2DOptions.prototype.padding = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.Padding} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.Padding.SAME;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.ActivationFunctionType}
   */
  tflite_schema.Conv2DOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 10);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.Conv2DOptions.startConv2DOptions = function(builder) {
    builder.startObject(6);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.Padding} padding
   */
  tflite_schema.Conv2DOptions.addPadding = function(builder, padding) {
    builder.addFieldInt8(0, padding, tflite_schema.Padding.SAME);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} strideW
   */
  tflite_schema.Conv2DOptions.addStrideW = function(builder, strideW) {
    builder.addFieldInt32(1, strideW, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} strideH
   */
  tflite_schema.Conv2DOptions.addStrideH = function(builder, strideH) {
    builder.addFieldInt32(2, strideH, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.Conv2DOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(3, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} dilationWFactor
   */
  tflite_schema.Conv2DOptions.addDilationWFactor = function(builder, dilationWFactor) {
    builder.addFieldInt32(4, dilationWFactor, 1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} dilationHFactor
   */
  tflite_schema.Conv2DOptions.addDilationHFactor = function(builder, dilationHFactor) {
    builder.addFieldInt32(5, dilationHFactor, 1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.Conv2DOptions.endConv2DOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.Pool2DOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.Pool2DOptions}
   */
  tflite_schema.Pool2DOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.Pool2DOptions=} obj
   * @returns {tflite_schema.Pool2DOptions}
   */
  tflite_schema.Pool2DOptions.getRootAsPool2DOptions = function(bb, obj) {
    return (obj || new tflite_schema.Pool2DOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.Padding}
   */
  tflite_schema.Pool2DOptions.prototype.padding = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.Padding} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.Padding.SAME;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.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_schema.ActivationFunctionType}
   */
  tflite_schema.Pool2DOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 14);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.Pool2DOptions.startPool2DOptions = function(builder) {
    builder.startObject(6);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.Padding} padding
   */
  tflite_schema.Pool2DOptions.addPadding = function(builder, padding) {
    builder.addFieldInt8(0, padding, tflite_schema.Padding.SAME);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} strideW
   */
  tflite_schema.Pool2DOptions.addStrideW = function(builder, strideW) {
    builder.addFieldInt32(1, strideW, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} strideH
   */
  tflite_schema.Pool2DOptions.addStrideH = function(builder, strideH) {
    builder.addFieldInt32(2, strideH, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} filterWidth
   */
  tflite_schema.Pool2DOptions.addFilterWidth = function(builder, filterWidth) {
    builder.addFieldInt32(3, filterWidth, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} filterHeight
   */
  tflite_schema.Pool2DOptions.addFilterHeight = function(builder, filterHeight) {
    builder.addFieldInt32(4, filterHeight, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.Pool2DOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(5, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.Pool2DOptions.endPool2DOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.DepthwiseConv2DOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.DepthwiseConv2DOptions}
   */
  tflite_schema.DepthwiseConv2DOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.DepthwiseConv2DOptions=} obj
   * @returns {tflite_schema.DepthwiseConv2DOptions}
   */
  tflite_schema.DepthwiseConv2DOptions.getRootAsDepthwiseConv2DOptions = function(bb, obj) {
    return (obj || new tflite_schema.DepthwiseConv2DOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.Padding}
   */
  tflite_schema.DepthwiseConv2DOptions.prototype.padding = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.Padding} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.Padding.SAME;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.ActivationFunctionType}
   */
  tflite_schema.DepthwiseConv2DOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 12);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.DepthwiseConv2DOptions.prototype.dilationWFactor = function() {
    var offset = this.bb.__offset(this.bb_pos, 14);
    return offset ? this.bb.readInt32(this.bb_pos + offset) : 1;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.DepthwiseConv2DOptions.prototype.dilationHFactor = function() {
    var offset = this.bb.__offset(this.bb_pos, 16);
    return offset ? this.bb.readInt32(this.bb_pos + offset) : 1;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.DepthwiseConv2DOptions.startDepthwiseConv2DOptions = function(builder) {
    builder.startObject(7);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.Padding} padding
   */
  tflite_schema.DepthwiseConv2DOptions.addPadding = function(builder, padding) {
    builder.addFieldInt8(0, padding, tflite_schema.Padding.SAME);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} strideW
   */
  tflite_schema.DepthwiseConv2DOptions.addStrideW = function(builder, strideW) {
    builder.addFieldInt32(1, strideW, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} strideH
   */
  tflite_schema.DepthwiseConv2DOptions.addStrideH = function(builder, strideH) {
    builder.addFieldInt32(2, strideH, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} depthMultiplier
   */
  tflite_schema.DepthwiseConv2DOptions.addDepthMultiplier = function(builder, depthMultiplier) {
    builder.addFieldInt32(3, depthMultiplier, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.DepthwiseConv2DOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(4, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} dilationWFactor
   */
  tflite_schema.DepthwiseConv2DOptions.addDilationWFactor = function(builder, dilationWFactor) {
    builder.addFieldInt32(5, dilationWFactor, 1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} dilationHFactor
   */
  tflite_schema.DepthwiseConv2DOptions.addDilationHFactor = function(builder, dilationHFactor) {
    builder.addFieldInt32(6, dilationHFactor, 1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.DepthwiseConv2DOptions.endDepthwiseConv2DOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ConcatEmbeddingsOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ConcatEmbeddingsOptions}
   */
  tflite_schema.ConcatEmbeddingsOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ConcatEmbeddingsOptions=} obj
   * @returns {tflite_schema.ConcatEmbeddingsOptions}
   */
  tflite_schema.ConcatEmbeddingsOptions.getRootAsConcatEmbeddingsOptions = function(bb, obj) {
    return (obj || new tflite_schema.ConcatEmbeddingsOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.ConcatEmbeddingsOptions.startConcatEmbeddingsOptions = function(builder) {
    builder.startObject(3);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} numChannels
   */
  tflite_schema.ConcatEmbeddingsOptions.addNumChannels = function(builder, numChannels) {
    builder.addFieldInt32(0, numChannels, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} numColumnsPerChannelOffset
   */
  tflite_schema.ConcatEmbeddingsOptions.addNumColumnsPerChannel = function(builder, numColumnsPerChannelOffset) {
    builder.addFieldOffset(1, numColumnsPerChannelOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.ConcatEmbeddingsOptions.startNumColumnsPerChannelVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} embeddingDimPerChannelOffset
   */
  tflite_schema.ConcatEmbeddingsOptions.addEmbeddingDimPerChannel = function(builder, embeddingDimPerChannelOffset) {
    builder.addFieldOffset(2, embeddingDimPerChannelOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.ConcatEmbeddingsOptions.startEmbeddingDimPerChannelVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ConcatEmbeddingsOptions.endConcatEmbeddingsOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.LSHProjectionOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.LSHProjectionOptions}
   */
  tflite_schema.LSHProjectionOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.LSHProjectionOptions=} obj
   * @returns {tflite_schema.LSHProjectionOptions}
   */
  tflite_schema.LSHProjectionOptions.getRootAsLSHProjectionOptions = function(bb, obj) {
    return (obj || new tflite_schema.LSHProjectionOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.LSHProjectionType}
   */
  tflite_schema.LSHProjectionOptions.prototype.type = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.LSHProjectionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.LSHProjectionType.UNKNOWN;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.LSHProjectionOptions.startLSHProjectionOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.LSHProjectionType} type
   */
  tflite_schema.LSHProjectionOptions.addType = function(builder, type) {
    builder.addFieldInt8(0, type, tflite_schema.LSHProjectionType.UNKNOWN);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.LSHProjectionOptions.endLSHProjectionOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SVDFOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SVDFOptions}
   */
  tflite_schema.SVDFOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SVDFOptions=} obj
   * @returns {tflite_schema.SVDFOptions}
   */
  tflite_schema.SVDFOptions.getRootAsSVDFOptions = function(bb, obj) {
    return (obj || new tflite_schema.SVDFOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.ActivationFunctionType}
   */
  tflite_schema.SVDFOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.SVDFOptions.startSVDFOptions = function(builder) {
    builder.startObject(2);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} rank
   */
  tflite_schema.SVDFOptions.addRank = function(builder, rank) {
    builder.addFieldInt32(0, rank, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.SVDFOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(1, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SVDFOptions.endSVDFOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.RNNOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.RNNOptions}
   */
  tflite_schema.RNNOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.RNNOptions=} obj
   * @returns {tflite_schema.RNNOptions}
   */
  tflite_schema.RNNOptions.getRootAsRNNOptions = function(bb, obj) {
    return (obj || new tflite_schema.RNNOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.ActivationFunctionType}
   */
  tflite_schema.RNNOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.RNNOptions.startRNNOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.RNNOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(0, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.RNNOptions.endRNNOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SequenceRNNOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SequenceRNNOptions}
   */
  tflite_schema.SequenceRNNOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SequenceRNNOptions=} obj
   * @returns {tflite_schema.SequenceRNNOptions}
   */
  tflite_schema.SequenceRNNOptions.getRootAsSequenceRNNOptions = function(bb, obj) {
    return (obj || new tflite_schema.SequenceRNNOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.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_schema.ActivationFunctionType}
   */
  tflite_schema.SequenceRNNOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.SequenceRNNOptions.startSequenceRNNOptions = function(builder) {
    builder.startObject(2);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} timeMajor
   */
  tflite_schema.SequenceRNNOptions.addTimeMajor = function(builder, timeMajor) {
    builder.addFieldInt8(0, +timeMajor, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.SequenceRNNOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(1, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SequenceRNNOptions.endSequenceRNNOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.BidirectionalSequenceRNNOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.BidirectionalSequenceRNNOptions}
   */
  tflite_schema.BidirectionalSequenceRNNOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.BidirectionalSequenceRNNOptions=} obj
   * @returns {tflite_schema.BidirectionalSequenceRNNOptions}
   */
  tflite_schema.BidirectionalSequenceRNNOptions.getRootAsBidirectionalSequenceRNNOptions = function(bb, obj) {
    return (obj || new tflite_schema.BidirectionalSequenceRNNOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.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_schema.ActivationFunctionType}
   */
  tflite_schema.BidirectionalSequenceRNNOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.BidirectionalSequenceRNNOptions.prototype.mergeOutputs = 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_schema.BidirectionalSequenceRNNOptions.startBidirectionalSequenceRNNOptions = function(builder) {
    builder.startObject(3);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} timeMajor
   */
  tflite_schema.BidirectionalSequenceRNNOptions.addTimeMajor = function(builder, timeMajor) {
    builder.addFieldInt8(0, +timeMajor, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.BidirectionalSequenceRNNOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(1, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} mergeOutputs
   */
  tflite_schema.BidirectionalSequenceRNNOptions.addMergeOutputs = function(builder, mergeOutputs) {
    builder.addFieldInt8(2, +mergeOutputs, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.BidirectionalSequenceRNNOptions.endBidirectionalSequenceRNNOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.FullyConnectedOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.FullyConnectedOptions}
   */
  tflite_schema.FullyConnectedOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.FullyConnectedOptions=} obj
   * @returns {tflite_schema.FullyConnectedOptions}
   */
  tflite_schema.FullyConnectedOptions.getRootAsFullyConnectedOptions = function(bb, obj) {
    return (obj || new tflite_schema.FullyConnectedOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.ActivationFunctionType}
   */
  tflite_schema.FullyConnectedOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @returns {tflite_schema.FullyConnectedOptionsWeightsFormat}
   */
  tflite_schema.FullyConnectedOptions.prototype.weightsFormat = function() {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? /** @type {tflite_schema.FullyConnectedOptionsWeightsFormat} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.FullyConnectedOptionsWeightsFormat.DEFAULT;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.FullyConnectedOptions.startFullyConnectedOptions = function(builder) {
    builder.startObject(2);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.FullyConnectedOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(0, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.FullyConnectedOptionsWeightsFormat} weightsFormat
   */
  tflite_schema.FullyConnectedOptions.addWeightsFormat = function(builder, weightsFormat) {
    builder.addFieldInt8(1, weightsFormat, tflite_schema.FullyConnectedOptionsWeightsFormat.DEFAULT);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.FullyConnectedOptions.endFullyConnectedOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SoftmaxOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SoftmaxOptions}
   */
  tflite_schema.SoftmaxOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SoftmaxOptions=} obj
   * @returns {tflite_schema.SoftmaxOptions}
   */
  tflite_schema.SoftmaxOptions.getRootAsSoftmaxOptions = function(bb, obj) {
    return (obj || new tflite_schema.SoftmaxOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.SoftmaxOptions.startSoftmaxOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} beta
   */
  tflite_schema.SoftmaxOptions.addBeta = function(builder, beta) {
    builder.addFieldFloat32(0, beta, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SoftmaxOptions.endSoftmaxOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ConcatenationOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ConcatenationOptions}
   */
  tflite_schema.ConcatenationOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ConcatenationOptions=} obj
   * @returns {tflite_schema.ConcatenationOptions}
   */
  tflite_schema.ConcatenationOptions.getRootAsConcatenationOptions = function(bb, obj) {
    return (obj || new tflite_schema.ConcatenationOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.ActivationFunctionType}
   */
  tflite_schema.ConcatenationOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.ConcatenationOptions.startConcatenationOptions = function(builder) {
    builder.startObject(2);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} axis
   */
  tflite_schema.ConcatenationOptions.addAxis = function(builder, axis) {
    builder.addFieldInt32(0, axis, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.ConcatenationOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(1, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ConcatenationOptions.endConcatenationOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.AddOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.AddOptions}
   */
  tflite_schema.AddOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.AddOptions=} obj
   * @returns {tflite_schema.AddOptions}
   */
  tflite_schema.AddOptions.getRootAsAddOptions = function(bb, obj) {
    return (obj || new tflite_schema.AddOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.ActivationFunctionType}
   */
  tflite_schema.AddOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.AddOptions.startAddOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.AddOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(0, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.AddOptions.endAddOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.MulOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.MulOptions}
   */
  tflite_schema.MulOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.MulOptions=} obj
   * @returns {tflite_schema.MulOptions}
   */
  tflite_schema.MulOptions.getRootAsMulOptions = function(bb, obj) {
    return (obj || new tflite_schema.MulOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.ActivationFunctionType}
   */
  tflite_schema.MulOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.MulOptions.startMulOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.MulOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(0, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.MulOptions.endMulOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.L2NormOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.L2NormOptions}
   */
  tflite_schema.L2NormOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.L2NormOptions=} obj
   * @returns {tflite_schema.L2NormOptions}
   */
  tflite_schema.L2NormOptions.getRootAsL2NormOptions = function(bb, obj) {
    return (obj || new tflite_schema.L2NormOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.ActivationFunctionType}
   */
  tflite_schema.L2NormOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.L2NormOptions.startL2NormOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.L2NormOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(0, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.L2NormOptions.endL2NormOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.LocalResponseNormalizationOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.LocalResponseNormalizationOptions}
   */
  tflite_schema.LocalResponseNormalizationOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.LocalResponseNormalizationOptions=} obj
   * @returns {tflite_schema.LocalResponseNormalizationOptions}
   */
  tflite_schema.LocalResponseNormalizationOptions.getRootAsLocalResponseNormalizationOptions = function(bb, obj) {
    return (obj || new tflite_schema.LocalResponseNormalizationOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.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_schema.LocalResponseNormalizationOptions.startLocalResponseNormalizationOptions = function(builder) {
    builder.startObject(4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} radius
   */
  tflite_schema.LocalResponseNormalizationOptions.addRadius = function(builder, radius) {
    builder.addFieldInt32(0, radius, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} bias
   */
  tflite_schema.LocalResponseNormalizationOptions.addBias = function(builder, bias) {
    builder.addFieldFloat32(1, bias, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} alpha
   */
  tflite_schema.LocalResponseNormalizationOptions.addAlpha = function(builder, alpha) {
    builder.addFieldFloat32(2, alpha, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} beta
   */
  tflite_schema.LocalResponseNormalizationOptions.addBeta = function(builder, beta) {
    builder.addFieldFloat32(3, beta, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.LocalResponseNormalizationOptions.endLocalResponseNormalizationOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.LSTMOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.LSTMOptions}
   */
  tflite_schema.LSTMOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.LSTMOptions=} obj
   * @returns {tflite_schema.LSTMOptions}
   */
  tflite_schema.LSTMOptions.getRootAsLSTMOptions = function(bb, obj) {
    return (obj || new tflite_schema.LSTMOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.ActivationFunctionType}
   */
  tflite_schema.LSTMOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.LSTMKernelType}
   */
  tflite_schema.LSTMOptions.prototype.kernelType = function() {
    var offset = this.bb.__offset(this.bb_pos, 10);
    return offset ? /** @type {tflite_schema.LSTMKernelType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.LSTMKernelType.FULL;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.LSTMOptions.startLSTMOptions = function(builder) {
    builder.startObject(4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.LSTMOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(0, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} cellClip
   */
  tflite_schema.LSTMOptions.addCellClip = function(builder, cellClip) {
    builder.addFieldFloat32(1, cellClip, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} projClip
   */
  tflite_schema.LSTMOptions.addProjClip = function(builder, projClip) {
    builder.addFieldFloat32(2, projClip, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.LSTMKernelType} kernelType
   */
  tflite_schema.LSTMOptions.addKernelType = function(builder, kernelType) {
    builder.addFieldInt8(3, kernelType, tflite_schema.LSTMKernelType.FULL);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.LSTMOptions.endLSTMOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.UnidirectionalSequenceLSTMOptions}
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.UnidirectionalSequenceLSTMOptions=} obj
   * @returns {tflite_schema.UnidirectionalSequenceLSTMOptions}
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.getRootAsUnidirectionalSequenceLSTMOptions = function(bb, obj) {
    return (obj || new tflite_schema.UnidirectionalSequenceLSTMOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.ActivationFunctionType}
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.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_schema.UnidirectionalSequenceLSTMOptions.prototype.projClip = function() {
    var offset = this.bb.__offset(this.bb_pos, 8);
    return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.prototype.timeMajor = function() {
    var offset = this.bb.__offset(this.bb_pos, 10);
    return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.startUnidirectionalSequenceLSTMOptions = function(builder) {
    builder.startObject(4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(0, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} cellClip
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.addCellClip = function(builder, cellClip) {
    builder.addFieldFloat32(1, cellClip, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} projClip
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.addProjClip = function(builder, projClip) {
    builder.addFieldFloat32(2, projClip, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} timeMajor
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.addTimeMajor = function(builder, timeMajor) {
    builder.addFieldInt8(3, +timeMajor, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.UnidirectionalSequenceLSTMOptions.endUnidirectionalSequenceLSTMOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.BidirectionalSequenceLSTMOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.BidirectionalSequenceLSTMOptions}
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.BidirectionalSequenceLSTMOptions=} obj
   * @returns {tflite_schema.BidirectionalSequenceLSTMOptions}
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.getRootAsBidirectionalSequenceLSTMOptions = function(bb, obj) {
    return (obj || new tflite_schema.BidirectionalSequenceLSTMOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.ActivationFunctionType}
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.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_schema.BidirectionalSequenceLSTMOptions.prototype.projClip = function() {
    var offset = this.bb.__offset(this.bb_pos, 8);
    return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.prototype.mergeOutputs = function() {
    var offset = this.bb.__offset(this.bb_pos, 10);
    return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.startBidirectionalSequenceLSTMOptions = function(builder) {
    builder.startObject(4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(0, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} cellClip
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.addCellClip = function(builder, cellClip) {
    builder.addFieldFloat32(1, cellClip, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} projClip
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.addProjClip = function(builder, projClip) {
    builder.addFieldFloat32(2, projClip, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} mergeOutputs
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.addMergeOutputs = function(builder, mergeOutputs) {
    builder.addFieldInt8(3, +mergeOutputs, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.BidirectionalSequenceLSTMOptions.endBidirectionalSequenceLSTMOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ResizeBilinearOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ResizeBilinearOptions}
   */
  tflite_schema.ResizeBilinearOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ResizeBilinearOptions=} obj
   * @returns {tflite_schema.ResizeBilinearOptions}
   */
  tflite_schema.ResizeBilinearOptions.getRootAsResizeBilinearOptions = function(bb, obj) {
    return (obj || new tflite_schema.ResizeBilinearOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.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_schema.ResizeBilinearOptions.startResizeBilinearOptions = function(builder) {
    builder.startObject(3);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} alignCorners
   */
  tflite_schema.ResizeBilinearOptions.addAlignCorners = function(builder, alignCorners) {
    builder.addFieldInt8(2, +alignCorners, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ResizeBilinearOptions.endResizeBilinearOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ResizeNearestNeighborOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ResizeNearestNeighborOptions}
   */
  tflite_schema.ResizeNearestNeighborOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ResizeNearestNeighborOptions=} obj
   * @returns {tflite_schema.ResizeNearestNeighborOptions}
   */
  tflite_schema.ResizeNearestNeighborOptions.getRootAsResizeNearestNeighborOptions = function(bb, obj) {
    return (obj || new tflite_schema.ResizeNearestNeighborOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.ResizeNearestNeighborOptions.prototype.alignCorners = 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_schema.ResizeNearestNeighborOptions.startResizeNearestNeighborOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} alignCorners
   */
  tflite_schema.ResizeNearestNeighborOptions.addAlignCorners = function(builder, alignCorners) {
    builder.addFieldInt8(0, +alignCorners, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ResizeNearestNeighborOptions.endResizeNearestNeighborOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.CallOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.CallOptions}
   */
  tflite_schema.CallOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.CallOptions=} obj
   * @returns {tflite_schema.CallOptions}
   */
  tflite_schema.CallOptions.getRootAsCallOptions = function(bb, obj) {
    return (obj || new tflite_schema.CallOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.CallOptions.startCallOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} subgraph
   */
  tflite_schema.CallOptions.addSubgraph = function(builder, subgraph) {
    builder.addFieldInt32(0, subgraph, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.CallOptions.endCallOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.PadOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.PadOptions}
   */
  tflite_schema.PadOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.PadOptions=} obj
   * @returns {tflite_schema.PadOptions}
   */
  tflite_schema.PadOptions.getRootAsPadOptions = function(bb, obj) {
    return (obj || new tflite_schema.PadOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.PadOptions.startPadOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.PadOptions.endPadOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.PadV2Options = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.PadV2Options}
   */
  tflite_schema.PadV2Options.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.PadV2Options=} obj
   * @returns {tflite_schema.PadV2Options}
   */
  tflite_schema.PadV2Options.getRootAsPadV2Options = function(bb, obj) {
    return (obj || new tflite_schema.PadV2Options).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.PadV2Options.startPadV2Options = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.PadV2Options.endPadV2Options = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ReshapeOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ReshapeOptions}
   */
  tflite_schema.ReshapeOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ReshapeOptions=} obj
   * @returns {tflite_schema.ReshapeOptions}
   */
  tflite_schema.ReshapeOptions.getRootAsReshapeOptions = function(bb, obj) {
    return (obj || new tflite_schema.ReshapeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {number} index
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.ReshapeOptions.startReshapeOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} newShapeOffset
   */
  tflite_schema.ReshapeOptions.addNewShape = function(builder, newShapeOffset) {
    builder.addFieldOffset(0, newShapeOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.ReshapeOptions.startNewShapeVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ReshapeOptions.endReshapeOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SpaceToBatchNDOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SpaceToBatchNDOptions}
   */
  tflite_schema.SpaceToBatchNDOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SpaceToBatchNDOptions=} obj
   * @returns {tflite_schema.SpaceToBatchNDOptions}
   */
  tflite_schema.SpaceToBatchNDOptions.getRootAsSpaceToBatchNDOptions = function(bb, obj) {
    return (obj || new tflite_schema.SpaceToBatchNDOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.SpaceToBatchNDOptions.startSpaceToBatchNDOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SpaceToBatchNDOptions.endSpaceToBatchNDOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.BatchToSpaceNDOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.BatchToSpaceNDOptions}
   */
  tflite_schema.BatchToSpaceNDOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.BatchToSpaceNDOptions=} obj
   * @returns {tflite_schema.BatchToSpaceNDOptions}
   */
  tflite_schema.BatchToSpaceNDOptions.getRootAsBatchToSpaceNDOptions = function(bb, obj) {
    return (obj || new tflite_schema.BatchToSpaceNDOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.BatchToSpaceNDOptions.startBatchToSpaceNDOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.BatchToSpaceNDOptions.endBatchToSpaceNDOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SkipGramOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SkipGramOptions}
   */
  tflite_schema.SkipGramOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SkipGramOptions=} obj
   * @returns {tflite_schema.SkipGramOptions}
   */
  tflite_schema.SkipGramOptions.getRootAsSkipGramOptions = function(bb, obj) {
    return (obj || new tflite_schema.SkipGramOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.SkipGramOptions.startSkipGramOptions = function(builder) {
    builder.startObject(3);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} ngramSize
   */
  tflite_schema.SkipGramOptions.addNgramSize = function(builder, ngramSize) {
    builder.addFieldInt32(0, ngramSize, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} maxSkipSize
   */
  tflite_schema.SkipGramOptions.addMaxSkipSize = function(builder, maxSkipSize) {
    builder.addFieldInt32(1, maxSkipSize, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} includeAllNgrams
   */
  tflite_schema.SkipGramOptions.addIncludeAllNgrams = function(builder, includeAllNgrams) {
    builder.addFieldInt8(2, +includeAllNgrams, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SkipGramOptions.endSkipGramOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SpaceToDepthOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SpaceToDepthOptions}
   */
  tflite_schema.SpaceToDepthOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SpaceToDepthOptions=} obj
   * @returns {tflite_schema.SpaceToDepthOptions}
   */
  tflite_schema.SpaceToDepthOptions.getRootAsSpaceToDepthOptions = function(bb, obj) {
    return (obj || new tflite_schema.SpaceToDepthOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.SpaceToDepthOptions.startSpaceToDepthOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} blockSize
   */
  tflite_schema.SpaceToDepthOptions.addBlockSize = function(builder, blockSize) {
    builder.addFieldInt32(0, blockSize, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SpaceToDepthOptions.endSpaceToDepthOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SubOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SubOptions}
   */
  tflite_schema.SubOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SubOptions=} obj
   * @returns {tflite_schema.SubOptions}
   */
  tflite_schema.SubOptions.getRootAsSubOptions = function(bb, obj) {
    return (obj || new tflite_schema.SubOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.ActivationFunctionType}
   */
  tflite_schema.SubOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.SubOptions.startSubOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.SubOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(0, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SubOptions.endSubOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.DivOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.DivOptions}
   */
  tflite_schema.DivOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.DivOptions=} obj
   * @returns {tflite_schema.DivOptions}
   */
  tflite_schema.DivOptions.getRootAsDivOptions = function(bb, obj) {
    return (obj || new tflite_schema.DivOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.ActivationFunctionType}
   */
  tflite_schema.DivOptions.prototype.fusedActivationFunction = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.ActivationFunctionType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.ActivationFunctionType.NONE;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.DivOptions.startDivOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.ActivationFunctionType} fusedActivationFunction
   */
  tflite_schema.DivOptions.addFusedActivationFunction = function(builder, fusedActivationFunction) {
    builder.addFieldInt8(0, fusedActivationFunction, tflite_schema.ActivationFunctionType.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.DivOptions.endDivOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.TopKV2Options = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.TopKV2Options}
   */
  tflite_schema.TopKV2Options.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.TopKV2Options=} obj
   * @returns {tflite_schema.TopKV2Options}
   */
  tflite_schema.TopKV2Options.getRootAsTopKV2Options = function(bb, obj) {
    return (obj || new tflite_schema.TopKV2Options).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.TopKV2Options.startTopKV2Options = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.TopKV2Options.endTopKV2Options = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.EmbeddingLookupSparseOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.EmbeddingLookupSparseOptions}
   */
  tflite_schema.EmbeddingLookupSparseOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.EmbeddingLookupSparseOptions=} obj
   * @returns {tflite_schema.EmbeddingLookupSparseOptions}
   */
  tflite_schema.EmbeddingLookupSparseOptions.getRootAsEmbeddingLookupSparseOptions = function(bb, obj) {
    return (obj || new tflite_schema.EmbeddingLookupSparseOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.CombinerType}
   */
  tflite_schema.EmbeddingLookupSparseOptions.prototype.combiner = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.CombinerType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.CombinerType.SUM;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.EmbeddingLookupSparseOptions.startEmbeddingLookupSparseOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.CombinerType} combiner
   */
  tflite_schema.EmbeddingLookupSparseOptions.addCombiner = function(builder, combiner) {
    builder.addFieldInt8(0, combiner, tflite_schema.CombinerType.SUM);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.EmbeddingLookupSparseOptions.endEmbeddingLookupSparseOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.GatherOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.GatherOptions}
   */
  tflite_schema.GatherOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.GatherOptions=} obj
   * @returns {tflite_schema.GatherOptions}
   */
  tflite_schema.GatherOptions.getRootAsGatherOptions = function(bb, obj) {
    return (obj || new tflite_schema.GatherOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.GatherOptions.startGatherOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} axis
   */
  tflite_schema.GatherOptions.addAxis = function(builder, axis) {
    builder.addFieldInt32(0, axis, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.GatherOptions.endGatherOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.TransposeOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.TransposeOptions}
   */
  tflite_schema.TransposeOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.TransposeOptions=} obj
   * @returns {tflite_schema.TransposeOptions}
   */
  tflite_schema.TransposeOptions.getRootAsTransposeOptions = function(bb, obj) {
    return (obj || new tflite_schema.TransposeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.TransposeOptions.startTransposeOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.TransposeOptions.endTransposeOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ExpOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ExpOptions}
   */
  tflite_schema.ExpOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ExpOptions=} obj
   * @returns {tflite_schema.ExpOptions}
   */
  tflite_schema.ExpOptions.getRootAsExpOptions = function(bb, obj) {
    return (obj || new tflite_schema.ExpOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.ExpOptions.startExpOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ExpOptions.endExpOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ReducerOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ReducerOptions}
   */
  tflite_schema.ReducerOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ReducerOptions=} obj
   * @returns {tflite_schema.ReducerOptions}
   */
  tflite_schema.ReducerOptions.getRootAsReducerOptions = function(bb, obj) {
    return (obj || new tflite_schema.ReducerOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.ReducerOptions.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_schema.ReducerOptions.startReducerOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} keepDims
   */
  tflite_schema.ReducerOptions.addKeepDims = function(builder, keepDims) {
    builder.addFieldInt8(0, +keepDims, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ReducerOptions.endReducerOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SqueezeOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SqueezeOptions}
   */
  tflite_schema.SqueezeOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SqueezeOptions=} obj
   * @returns {tflite_schema.SqueezeOptions}
   */
  tflite_schema.SqueezeOptions.getRootAsSqueezeOptions = function(bb, obj) {
    return (obj || new tflite_schema.SqueezeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {number} index
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.SqueezeOptions.startSqueezeOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} squeezeDimsOffset
   */
  tflite_schema.SqueezeOptions.addSqueezeDims = function(builder, squeezeDimsOffset) {
    builder.addFieldOffset(0, squeezeDimsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.SqueezeOptions.startSqueezeDimsVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SqueezeOptions.endSqueezeOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SplitOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SplitOptions}
   */
  tflite_schema.SplitOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SplitOptions=} obj
   * @returns {tflite_schema.SplitOptions}
   */
  tflite_schema.SplitOptions.getRootAsSplitOptions = function(bb, obj) {
    return (obj || new tflite_schema.SplitOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.SplitOptions.startSplitOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} numSplits
   */
  tflite_schema.SplitOptions.addNumSplits = function(builder, numSplits) {
    builder.addFieldInt32(0, numSplits, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SplitOptions.endSplitOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.StridedSliceOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.StridedSliceOptions}
   */
  tflite_schema.StridedSliceOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.StridedSliceOptions=} obj
   * @returns {tflite_schema.StridedSliceOptions}
   */
  tflite_schema.StridedSliceOptions.getRootAsStridedSliceOptions = function(bb, obj) {
    return (obj || new tflite_schema.StridedSliceOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.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_schema.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_schema.StridedSliceOptions.startStridedSliceOptions = function(builder) {
    builder.startObject(5);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} beginMask
   */
  tflite_schema.StridedSliceOptions.addBeginMask = function(builder, beginMask) {
    builder.addFieldInt32(0, beginMask, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} endMask
   */
  tflite_schema.StridedSliceOptions.addEndMask = function(builder, endMask) {
    builder.addFieldInt32(1, endMask, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} ellipsisMask
   */
  tflite_schema.StridedSliceOptions.addEllipsisMask = function(builder, ellipsisMask) {
    builder.addFieldInt32(2, ellipsisMask, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} newAxisMask
   */
  tflite_schema.StridedSliceOptions.addNewAxisMask = function(builder, newAxisMask) {
    builder.addFieldInt32(3, newAxisMask, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} shrinkAxisMask
   */
  tflite_schema.StridedSliceOptions.addShrinkAxisMask = function(builder, shrinkAxisMask) {
    builder.addFieldInt32(4, shrinkAxisMask, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.StridedSliceOptions.endStridedSliceOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.LogSoftmaxOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.LogSoftmaxOptions}
   */
  tflite_schema.LogSoftmaxOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.LogSoftmaxOptions=} obj
   * @returns {tflite_schema.LogSoftmaxOptions}
   */
  tflite_schema.LogSoftmaxOptions.getRootAsLogSoftmaxOptions = function(bb, obj) {
    return (obj || new tflite_schema.LogSoftmaxOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.LogSoftmaxOptions.startLogSoftmaxOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.LogSoftmaxOptions.endLogSoftmaxOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.CastOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.CastOptions}
   */
  tflite_schema.CastOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.CastOptions=} obj
   * @returns {tflite_schema.CastOptions}
   */
  tflite_schema.CastOptions.getRootAsCastOptions = function(bb, obj) {
    return (obj || new tflite_schema.CastOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.TensorType}
   */
  tflite_schema.CastOptions.prototype.inDataType = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.TensorType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.TensorType.FLOAT32;
  };
  
  /**
   * @returns {tflite_schema.TensorType}
   */
  tflite_schema.CastOptions.prototype.outDataType = function() {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? /** @type {tflite_schema.TensorType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.TensorType.FLOAT32;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.CastOptions.startCastOptions = function(builder) {
    builder.startObject(2);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.TensorType} inDataType
   */
  tflite_schema.CastOptions.addInDataType = function(builder, inDataType) {
    builder.addFieldInt8(0, inDataType, tflite_schema.TensorType.FLOAT32);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.TensorType} outDataType
   */
  tflite_schema.CastOptions.addOutDataType = function(builder, outDataType) {
    builder.addFieldInt8(1, outDataType, tflite_schema.TensorType.FLOAT32);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.CastOptions.endCastOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.DequantizeOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.DequantizeOptions}
   */
  tflite_schema.DequantizeOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.DequantizeOptions=} obj
   * @returns {tflite_schema.DequantizeOptions}
   */
  tflite_schema.DequantizeOptions.getRootAsDequantizeOptions = function(bb, obj) {
    return (obj || new tflite_schema.DequantizeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.DequantizeOptions.startDequantizeOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.DequantizeOptions.endDequantizeOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.MaximumMinimumOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.MaximumMinimumOptions}
   */
  tflite_schema.MaximumMinimumOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.MaximumMinimumOptions=} obj
   * @returns {tflite_schema.MaximumMinimumOptions}
   */
  tflite_schema.MaximumMinimumOptions.getRootAsMaximumMinimumOptions = function(bb, obj) {
    return (obj || new tflite_schema.MaximumMinimumOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.MaximumMinimumOptions.startMaximumMinimumOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.MaximumMinimumOptions.endMaximumMinimumOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.TileOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.TileOptions}
   */
  tflite_schema.TileOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.TileOptions=} obj
   * @returns {tflite_schema.TileOptions}
   */
  tflite_schema.TileOptions.getRootAsTileOptions = function(bb, obj) {
    return (obj || new tflite_schema.TileOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.TileOptions.startTileOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.TileOptions.endTileOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ArgMaxOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ArgMaxOptions}
   */
  tflite_schema.ArgMaxOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ArgMaxOptions=} obj
   * @returns {tflite_schema.ArgMaxOptions}
   */
  tflite_schema.ArgMaxOptions.getRootAsArgMaxOptions = function(bb, obj) {
    return (obj || new tflite_schema.ArgMaxOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.TensorType}
   */
  tflite_schema.ArgMaxOptions.prototype.outputType = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.TensorType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.TensorType.FLOAT32;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.ArgMaxOptions.startArgMaxOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.TensorType} outputType
   */
  tflite_schema.ArgMaxOptions.addOutputType = function(builder, outputType) {
    builder.addFieldInt8(0, outputType, tflite_schema.TensorType.FLOAT32);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ArgMaxOptions.endArgMaxOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ArgMinOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ArgMinOptions}
   */
  tflite_schema.ArgMinOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ArgMinOptions=} obj
   * @returns {tflite_schema.ArgMinOptions}
   */
  tflite_schema.ArgMinOptions.getRootAsArgMinOptions = function(bb, obj) {
    return (obj || new tflite_schema.ArgMinOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.TensorType}
   */
  tflite_schema.ArgMinOptions.prototype.outputType = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.TensorType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.TensorType.FLOAT32;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.ArgMinOptions.startArgMinOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.TensorType} outputType
   */
  tflite_schema.ArgMinOptions.addOutputType = function(builder, outputType) {
    builder.addFieldInt8(0, outputType, tflite_schema.TensorType.FLOAT32);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ArgMinOptions.endArgMinOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.GreaterOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.GreaterOptions}
   */
  tflite_schema.GreaterOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.GreaterOptions=} obj
   * @returns {tflite_schema.GreaterOptions}
   */
  tflite_schema.GreaterOptions.getRootAsGreaterOptions = function(bb, obj) {
    return (obj || new tflite_schema.GreaterOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.GreaterOptions.startGreaterOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.GreaterOptions.endGreaterOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.GreaterEqualOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.GreaterEqualOptions}
   */
  tflite_schema.GreaterEqualOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.GreaterEqualOptions=} obj
   * @returns {tflite_schema.GreaterEqualOptions}
   */
  tflite_schema.GreaterEqualOptions.getRootAsGreaterEqualOptions = function(bb, obj) {
    return (obj || new tflite_schema.GreaterEqualOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.GreaterEqualOptions.startGreaterEqualOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.GreaterEqualOptions.endGreaterEqualOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.LessOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.LessOptions}
   */
  tflite_schema.LessOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.LessOptions=} obj
   * @returns {tflite_schema.LessOptions}
   */
  tflite_schema.LessOptions.getRootAsLessOptions = function(bb, obj) {
    return (obj || new tflite_schema.LessOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.LessOptions.startLessOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.LessOptions.endLessOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.LessEqualOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.LessEqualOptions}
   */
  tflite_schema.LessEqualOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.LessEqualOptions=} obj
   * @returns {tflite_schema.LessEqualOptions}
   */
  tflite_schema.LessEqualOptions.getRootAsLessEqualOptions = function(bb, obj) {
    return (obj || new tflite_schema.LessEqualOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.LessEqualOptions.startLessEqualOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.LessEqualOptions.endLessEqualOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.NegOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.NegOptions}
   */
  tflite_schema.NegOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.NegOptions=} obj
   * @returns {tflite_schema.NegOptions}
   */
  tflite_schema.NegOptions.getRootAsNegOptions = function(bb, obj) {
    return (obj || new tflite_schema.NegOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.NegOptions.startNegOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.NegOptions.endNegOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SelectOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SelectOptions}
   */
  tflite_schema.SelectOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SelectOptions=} obj
   * @returns {tflite_schema.SelectOptions}
   */
  tflite_schema.SelectOptions.getRootAsSelectOptions = function(bb, obj) {
    return (obj || new tflite_schema.SelectOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.SelectOptions.startSelectOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SelectOptions.endSelectOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SliceOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SliceOptions}
   */
  tflite_schema.SliceOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SliceOptions=} obj
   * @returns {tflite_schema.SliceOptions}
   */
  tflite_schema.SliceOptions.getRootAsSliceOptions = function(bb, obj) {
    return (obj || new tflite_schema.SliceOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.SliceOptions.startSliceOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SliceOptions.endSliceOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.TransposeConvOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.TransposeConvOptions}
   */
  tflite_schema.TransposeConvOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.TransposeConvOptions=} obj
   * @returns {tflite_schema.TransposeConvOptions}
   */
  tflite_schema.TransposeConvOptions.getRootAsTransposeConvOptions = function(bb, obj) {
    return (obj || new tflite_schema.TransposeConvOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.Padding}
   */
  tflite_schema.TransposeConvOptions.prototype.padding = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.Padding} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.Padding.SAME;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.TransposeConvOptions.startTransposeConvOptions = function(builder) {
    builder.startObject(3);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.Padding} padding
   */
  tflite_schema.TransposeConvOptions.addPadding = function(builder, padding) {
    builder.addFieldInt8(0, padding, tflite_schema.Padding.SAME);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} strideW
   */
  tflite_schema.TransposeConvOptions.addStrideW = function(builder, strideW) {
    builder.addFieldInt32(1, strideW, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} strideH
   */
  tflite_schema.TransposeConvOptions.addStrideH = function(builder, strideH) {
    builder.addFieldInt32(2, strideH, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.TransposeConvOptions.endTransposeConvOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ExpandDimsOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ExpandDimsOptions}
   */
  tflite_schema.ExpandDimsOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ExpandDimsOptions=} obj
   * @returns {tflite_schema.ExpandDimsOptions}
   */
  tflite_schema.ExpandDimsOptions.getRootAsExpandDimsOptions = function(bb, obj) {
    return (obj || new tflite_schema.ExpandDimsOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.ExpandDimsOptions.startExpandDimsOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ExpandDimsOptions.endExpandDimsOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SparseToDenseOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SparseToDenseOptions}
   */
  tflite_schema.SparseToDenseOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SparseToDenseOptions=} obj
   * @returns {tflite_schema.SparseToDenseOptions}
   */
  tflite_schema.SparseToDenseOptions.getRootAsSparseToDenseOptions = function(bb, obj) {
    return (obj || new tflite_schema.SparseToDenseOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.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_schema.SparseToDenseOptions.startSparseToDenseOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} validateIndices
   */
  tflite_schema.SparseToDenseOptions.addValidateIndices = function(builder, validateIndices) {
    builder.addFieldInt8(0, +validateIndices, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SparseToDenseOptions.endSparseToDenseOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.EqualOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.EqualOptions}
   */
  tflite_schema.EqualOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.EqualOptions=} obj
   * @returns {tflite_schema.EqualOptions}
   */
  tflite_schema.EqualOptions.getRootAsEqualOptions = function(bb, obj) {
    return (obj || new tflite_schema.EqualOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.EqualOptions.startEqualOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.EqualOptions.endEqualOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.NotEqualOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.NotEqualOptions}
   */
  tflite_schema.NotEqualOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.NotEqualOptions=} obj
   * @returns {tflite_schema.NotEqualOptions}
   */
  tflite_schema.NotEqualOptions.getRootAsNotEqualOptions = function(bb, obj) {
    return (obj || new tflite_schema.NotEqualOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.NotEqualOptions.startNotEqualOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.NotEqualOptions.endNotEqualOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ShapeOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ShapeOptions}
   */
  tflite_schema.ShapeOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ShapeOptions=} obj
   * @returns {tflite_schema.ShapeOptions}
   */
  tflite_schema.ShapeOptions.getRootAsShapeOptions = function(bb, obj) {
    return (obj || new tflite_schema.ShapeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.TensorType}
   */
  tflite_schema.ShapeOptions.prototype.outType = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.TensorType} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.TensorType.FLOAT32;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.ShapeOptions.startShapeOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.TensorType} outType
   */
  tflite_schema.ShapeOptions.addOutType = function(builder, outType) {
    builder.addFieldInt8(0, outType, tflite_schema.TensorType.FLOAT32);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ShapeOptions.endShapeOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.PowOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.PowOptions}
   */
  tflite_schema.PowOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.PowOptions=} obj
   * @returns {tflite_schema.PowOptions}
   */
  tflite_schema.PowOptions.getRootAsPowOptions = function(bb, obj) {
    return (obj || new tflite_schema.PowOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.PowOptions.startPowOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.PowOptions.endPowOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.FakeQuantOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.FakeQuantOptions}
   */
  tflite_schema.FakeQuantOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.FakeQuantOptions=} obj
   * @returns {tflite_schema.FakeQuantOptions}
   */
  tflite_schema.FakeQuantOptions.getRootAsFakeQuantOptions = function(bb, obj) {
    return (obj || new tflite_schema.FakeQuantOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.FakeQuantOptions.prototype.min = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.FakeQuantOptions.prototype.max = function() {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.FakeQuantOptions.prototype.numBits = function() {
    var offset = this.bb.__offset(this.bb_pos, 8);
    return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
  };
  
  /**
   * @returns {boolean}
   */
  tflite_schema.FakeQuantOptions.prototype.narrowRange = function() {
    var offset = this.bb.__offset(this.bb_pos, 10);
    return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.FakeQuantOptions.startFakeQuantOptions = function(builder) {
    builder.startObject(4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} min
   */
  tflite_schema.FakeQuantOptions.addMin = function(builder, min) {
    builder.addFieldFloat32(0, min, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} max
   */
  tflite_schema.FakeQuantOptions.addMax = function(builder, max) {
    builder.addFieldFloat32(1, max, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} numBits
   */
  tflite_schema.FakeQuantOptions.addNumBits = function(builder, numBits) {
    builder.addFieldInt32(2, numBits, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {boolean} narrowRange
   */
  tflite_schema.FakeQuantOptions.addNarrowRange = function(builder, narrowRange) {
    builder.addFieldInt8(3, +narrowRange, +false);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.FakeQuantOptions.endFakeQuantOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.PackOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.PackOptions}
   */
  tflite_schema.PackOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.PackOptions=} obj
   * @returns {tflite_schema.PackOptions}
   */
  tflite_schema.PackOptions.getRootAsPackOptions = function(bb, obj) {
    return (obj || new tflite_schema.PackOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.PackOptions.prototype.valuesCount = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.PackOptions.prototype.axis = function() {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.PackOptions.startPackOptions = function(builder) {
    builder.startObject(2);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} valuesCount
   */
  tflite_schema.PackOptions.addValuesCount = function(builder, valuesCount) {
    builder.addFieldInt32(0, valuesCount, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} axis
   */
  tflite_schema.PackOptions.addAxis = function(builder, axis) {
    builder.addFieldInt32(1, axis, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.PackOptions.endPackOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.LogicalOrOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.LogicalOrOptions}
   */
  tflite_schema.LogicalOrOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.LogicalOrOptions=} obj
   * @returns {tflite_schema.LogicalOrOptions}
   */
  tflite_schema.LogicalOrOptions.getRootAsLogicalOrOptions = function(bb, obj) {
    return (obj || new tflite_schema.LogicalOrOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.LogicalOrOptions.startLogicalOrOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.LogicalOrOptions.endLogicalOrOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.OneHotOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.OneHotOptions}
   */
  tflite_schema.OneHotOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.OneHotOptions=} obj
   * @returns {tflite_schema.OneHotOptions}
   */
  tflite_schema.OneHotOptions.getRootAsOneHotOptions = function(bb, obj) {
    return (obj || new tflite_schema.OneHotOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.OneHotOptions.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_schema.OneHotOptions.startOneHotOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} axis
   */
  tflite_schema.OneHotOptions.addAxis = function(builder, axis) {
    builder.addFieldInt32(0, axis, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.OneHotOptions.endOneHotOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.LogicalAndOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.LogicalAndOptions}
   */
  tflite_schema.LogicalAndOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.LogicalAndOptions=} obj
   * @returns {tflite_schema.LogicalAndOptions}
   */
  tflite_schema.LogicalAndOptions.getRootAsLogicalAndOptions = function(bb, obj) {
    return (obj || new tflite_schema.LogicalAndOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.LogicalAndOptions.startLogicalAndOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.LogicalAndOptions.endLogicalAndOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.LogicalNotOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.LogicalNotOptions}
   */
  tflite_schema.LogicalNotOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.LogicalNotOptions=} obj
   * @returns {tflite_schema.LogicalNotOptions}
   */
  tflite_schema.LogicalNotOptions.getRootAsLogicalNotOptions = function(bb, obj) {
    return (obj || new tflite_schema.LogicalNotOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.LogicalNotOptions.startLogicalNotOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.LogicalNotOptions.endLogicalNotOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.UnpackOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.UnpackOptions}
   */
  tflite_schema.UnpackOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.UnpackOptions=} obj
   * @returns {tflite_schema.UnpackOptions}
   */
  tflite_schema.UnpackOptions.getRootAsUnpackOptions = function(bb, obj) {
    return (obj || new tflite_schema.UnpackOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.UnpackOptions.prototype.num = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.UnpackOptions.prototype.axis = function() {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.UnpackOptions.startUnpackOptions = function(builder) {
    builder.startObject(2);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} num
   */
  tflite_schema.UnpackOptions.addNum = function(builder, num) {
    builder.addFieldInt32(0, num, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} axis
   */
  tflite_schema.UnpackOptions.addAxis = function(builder, axis) {
    builder.addFieldInt32(1, axis, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.UnpackOptions.endUnpackOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.FloorDivOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.FloorDivOptions}
   */
  tflite_schema.FloorDivOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.FloorDivOptions=} obj
   * @returns {tflite_schema.FloorDivOptions}
   */
  tflite_schema.FloorDivOptions.getRootAsFloorDivOptions = function(bb, obj) {
    return (obj || new tflite_schema.FloorDivOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.FloorDivOptions.startFloorDivOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.FloorDivOptions.endFloorDivOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SquareOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SquareOptions}
   */
  tflite_schema.SquareOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SquareOptions=} obj
   * @returns {tflite_schema.SquareOptions}
   */
  tflite_schema.SquareOptions.getRootAsSquareOptions = function(bb, obj) {
    return (obj || new tflite_schema.SquareOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.SquareOptions.startSquareOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SquareOptions.endSquareOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.ZerosLikeOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.ZerosLikeOptions}
   */
  tflite_schema.ZerosLikeOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.ZerosLikeOptions=} obj
   * @returns {tflite_schema.ZerosLikeOptions}
   */
  tflite_schema.ZerosLikeOptions.getRootAsZerosLikeOptions = function(bb, obj) {
    return (obj || new tflite_schema.ZerosLikeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.ZerosLikeOptions.startZerosLikeOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.ZerosLikeOptions.endZerosLikeOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.FillOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.FillOptions}
   */
  tflite_schema.FillOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.FillOptions=} obj
   * @returns {tflite_schema.FillOptions}
   */
  tflite_schema.FillOptions.getRootAsFillOptions = function(bb, obj) {
    return (obj || new tflite_schema.FillOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.FillOptions.startFillOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.FillOptions.endFillOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.FloorModOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.FloorModOptions}
   */
  tflite_schema.FloorModOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.FloorModOptions=} obj
   * @returns {tflite_schema.FloorModOptions}
   */
  tflite_schema.FloorModOptions.getRootAsFloorModOptions = function(bb, obj) {
    return (obj || new tflite_schema.FloorModOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.FloorModOptions.startFloorModOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.FloorModOptions.endFloorModOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.RangeOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.RangeOptions}
   */
  tflite_schema.RangeOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.RangeOptions=} obj
   * @returns {tflite_schema.RangeOptions}
   */
  tflite_schema.RangeOptions.getRootAsRangeOptions = function(bb, obj) {
    return (obj || new tflite_schema.RangeOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.RangeOptions.startRangeOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.RangeOptions.endRangeOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.LeakyReluOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.LeakyReluOptions}
   */
  tflite_schema.LeakyReluOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.LeakyReluOptions=} obj
   * @returns {tflite_schema.LeakyReluOptions}
   */
  tflite_schema.LeakyReluOptions.getRootAsLeakyReluOptions = function(bb, obj) {
    return (obj || new tflite_schema.LeakyReluOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.LeakyReluOptions.prototype.alpha = 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_schema.LeakyReluOptions.startLeakyReluOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} alpha
   */
  tflite_schema.LeakyReluOptions.addAlpha = function(builder, alpha) {
    builder.addFieldFloat32(0, alpha, 0.0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.LeakyReluOptions.endLeakyReluOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SquaredDifferenceOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SquaredDifferenceOptions}
   */
  tflite_schema.SquaredDifferenceOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SquaredDifferenceOptions=} obj
   * @returns {tflite_schema.SquaredDifferenceOptions}
   */
  tflite_schema.SquaredDifferenceOptions.getRootAsSquaredDifferenceOptions = function(bb, obj) {
    return (obj || new tflite_schema.SquaredDifferenceOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.SquaredDifferenceOptions.startSquaredDifferenceOptions = function(builder) {
    builder.startObject(0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SquaredDifferenceOptions.endSquaredDifferenceOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.MirrorPadOptions = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.MirrorPadOptions}
   */
  tflite_schema.MirrorPadOptions.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.MirrorPadOptions=} obj
   * @returns {tflite_schema.MirrorPadOptions}
   */
  tflite_schema.MirrorPadOptions.getRootAsMirrorPadOptions = function(bb, obj) {
    return (obj || new tflite_schema.MirrorPadOptions).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.MirrorPadMode}
   */
  tflite_schema.MirrorPadOptions.prototype.mode = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.MirrorPadMode} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.MirrorPadMode.REFLECT;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   */
  tflite_schema.MirrorPadOptions.startMirrorPadOptions = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.MirrorPadMode} mode
   */
  tflite_schema.MirrorPadOptions.addMode = function(builder, mode) {
    builder.addFieldInt8(0, mode, tflite_schema.MirrorPadMode.REFLECT);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.MirrorPadOptions.endMirrorPadOptions = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.OperatorCode = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.OperatorCode}
   */
  tflite_schema.OperatorCode.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.OperatorCode=} obj
   * @returns {tflite_schema.OperatorCode}
   */
  tflite_schema.OperatorCode.getRootAsOperatorCode = function(bb, obj) {
    return (obj || new tflite_schema.OperatorCode).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {tflite_schema.BuiltinOperator}
   */
  tflite_schema.OperatorCode.prototype.builtinCode = function() {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? /** @type {tflite_schema.BuiltinOperator} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.BuiltinOperator.ADD;
  };
  
  /**
   * @param {flatbuffers.Encoding=} optionalEncoding
   * @returns {string|Uint8Array|null}
   */
  tflite_schema.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_schema.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_schema.OperatorCode.startOperatorCode = function(builder) {
    builder.startObject(3);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.BuiltinOperator} builtinCode
   */
  tflite_schema.OperatorCode.addBuiltinCode = function(builder, builtinCode) {
    builder.addFieldInt8(0, builtinCode, tflite_schema.BuiltinOperator.ADD);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} customCodeOffset
   */
  tflite_schema.OperatorCode.addCustomCode = function(builder, customCodeOffset) {
    builder.addFieldOffset(1, customCodeOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} version
   */
  tflite_schema.OperatorCode.addVersion = function(builder, version) {
    builder.addFieldInt32(2, version, 1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.OperatorCode.endOperatorCode = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.Operator = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.Operator}
   */
  tflite_schema.Operator.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.Operator=} obj
   * @returns {tflite_schema.Operator}
   */
  tflite_schema.Operator.getRootAsOperator = function(bb, obj) {
    return (obj || new tflite_schema.Operator).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.BuiltinOptions}
   */
  tflite_schema.Operator.prototype.builtinOptionsType = function() {
    var offset = this.bb.__offset(this.bb_pos, 10);
    return offset ? /** @type {tflite_schema.BuiltinOptions} */ (this.bb.readUint8(this.bb_pos + offset)) : tflite_schema.BuiltinOptions.NONE;
  };
  
  /**
   * @param {flatbuffers.Table} obj
   * @returns {?flatbuffers.Table}
   */
  tflite_schema.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_schema.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_schema.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_schema.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_schema.CustomOptionsFormat}
   */
  tflite_schema.Operator.prototype.customOptionsFormat = function() {
    var offset = this.bb.__offset(this.bb_pos, 16);
    return offset ? /** @type {tflite_schema.CustomOptionsFormat} */ (this.bb.readInt8(this.bb_pos + offset)) : tflite_schema.CustomOptionsFormat.FLEXBUFFERS;
  };
  
  /**
   * @param {number} index
   * @returns {boolean}
   */
  tflite_schema.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_schema.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_schema.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_schema.Operator.startOperator = function(builder) {
    builder.startObject(8);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} opcodeIndex
   */
  tflite_schema.Operator.addOpcodeIndex = function(builder, opcodeIndex) {
    builder.addFieldInt32(0, opcodeIndex, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} inputsOffset
   */
  tflite_schema.Operator.addInputs = function(builder, inputsOffset) {
    builder.addFieldOffset(1, inputsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.Operator.startInputsVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} outputsOffset
   */
  tflite_schema.Operator.addOutputs = function(builder, outputsOffset) {
    builder.addFieldOffset(2, outputsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.Operator.startOutputsVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.BuiltinOptions} builtinOptionsType
   */
  tflite_schema.Operator.addBuiltinOptionsType = function(builder, builtinOptionsType) {
    builder.addFieldInt8(3, builtinOptionsType, tflite_schema.BuiltinOptions.NONE);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} builtinOptionsOffset
   */
  tflite_schema.Operator.addBuiltinOptions = function(builder, builtinOptionsOffset) {
    builder.addFieldOffset(4, builtinOptionsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} customOptionsOffset
   */
  tflite_schema.Operator.addCustomOptions = function(builder, customOptionsOffset) {
    builder.addFieldOffset(5, customOptionsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.Operator.startCustomOptionsVector = function(builder, numElems) {
    builder.startVector(1, numElems, 1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {tflite_schema.CustomOptionsFormat} customOptionsFormat
   */
  tflite_schema.Operator.addCustomOptionsFormat = function(builder, customOptionsFormat) {
    builder.addFieldInt8(6, customOptionsFormat, tflite_schema.CustomOptionsFormat.FLEXBUFFERS);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} mutatingVariableInputsOffset
   */
  tflite_schema.Operator.addMutatingVariableInputs = function(builder, mutatingVariableInputsOffset) {
    builder.addFieldOffset(7, mutatingVariableInputsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<boolean>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.Operator.startMutatingVariableInputsVector = function(builder, numElems) {
    builder.startVector(1, numElems, 1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.Operator.endOperator = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.SubGraph = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.SubGraph}
   */
  tflite_schema.SubGraph.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.SubGraph=} obj
   * @returns {tflite_schema.SubGraph}
   */
  tflite_schema.SubGraph.getRootAsSubGraph = function(bb, obj) {
    return (obj || new tflite_schema.SubGraph).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {number} index
   * @param {tflite_schema.Tensor=} obj
   * @returns {tflite_schema.Tensor}
   */
  tflite_schema.SubGraph.prototype.tensors = function(index, obj) {
    var offset = this.bb.__offset(this.bb_pos, 4);
    return offset ? (obj || new tflite_schema.Tensor).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.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_schema.Operator=} obj
   * @returns {tflite_schema.Operator}
   */
  tflite_schema.SubGraph.prototype.operators = function(index, obj) {
    var offset = this.bb.__offset(this.bb_pos, 10);
    return offset ? (obj || new tflite_schema.Operator).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.SubGraph.startSubGraph = function(builder) {
    builder.startObject(5);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} tensorsOffset
   */
  tflite_schema.SubGraph.addTensors = function(builder, tensorsOffset) {
    builder.addFieldOffset(0, tensorsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<flatbuffers.Offset>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.SubGraph.startTensorsVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} inputsOffset
   */
  tflite_schema.SubGraph.addInputs = function(builder, inputsOffset) {
    builder.addFieldOffset(1, inputsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.SubGraph.startInputsVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} outputsOffset
   */
  tflite_schema.SubGraph.addOutputs = function(builder, outputsOffset) {
    builder.addFieldOffset(2, outputsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.SubGraph.startOutputsVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} operatorsOffset
   */
  tflite_schema.SubGraph.addOperators = function(builder, operatorsOffset) {
    builder.addFieldOffset(3, operatorsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<flatbuffers.Offset>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.SubGraph.startOperatorsVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} nameOffset
   */
  tflite_schema.SubGraph.addName = function(builder, nameOffset) {
    builder.addFieldOffset(4, nameOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.SubGraph.endSubGraph = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.Buffer = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.Buffer}
   */
  tflite_schema.Buffer.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.Buffer=} obj
   * @returns {tflite_schema.Buffer}
   */
  tflite_schema.Buffer.getRootAsBuffer = function(bb, obj) {
    return (obj || new tflite_schema.Buffer).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {number} index
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.Buffer.startBuffer = function(builder) {
    builder.startObject(1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} dataOffset
   */
  tflite_schema.Buffer.addData = function(builder, dataOffset) {
    builder.addFieldOffset(0, dataOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.Buffer.startDataVector = function(builder, numElems) {
    builder.startVector(1, numElems, 1);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.Buffer.endBuffer = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @constructor
   */
  tflite_schema.Model = function() {
    /**
     * @type {flatbuffers.ByteBuffer}
     */
    this.bb = null;
  
    /**
     * @type {number}
     */
    this.bb_pos = 0;
  };
  
  /**
   * @param {number} i
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {tflite_schema.Model}
   */
  tflite_schema.Model.prototype.__init = function(i, bb) {
    this.bb_pos = i;
    this.bb = bb;
    return this;
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @param {tflite_schema.Model=} obj
   * @returns {tflite_schema.Model}
   */
  tflite_schema.Model.getRootAsModel = function(bb, obj) {
    return (obj || new tflite_schema.Model).__init(bb.readInt32(bb.position()) + bb.position(), bb);
  };
  
  /**
   * @param {flatbuffers.ByteBuffer} bb
   * @returns {boolean}
   */
  tflite_schema.Model.bufferHasIdentifier = function(bb) {
    return bb.__has_identifier('TFL3');
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.OperatorCode=} obj
   * @returns {tflite_schema.OperatorCode}
   */
  tflite_schema.Model.prototype.operatorCodes = function(index, obj) {
    var offset = this.bb.__offset(this.bb_pos, 6);
    return offset ? (obj || new tflite_schema.OperatorCode).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.SubGraph=} obj
   * @returns {tflite_schema.SubGraph}
   */
  tflite_schema.Model.prototype.subgraphs = function(index, obj) {
    var offset = this.bb.__offset(this.bb_pos, 8);
    return offset ? (obj || new tflite_schema.SubGraph).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.Buffer=} obj
   * @returns {tflite_schema.Buffer}
   */
  tflite_schema.Model.prototype.buffers = function(index, obj) {
    var offset = this.bb.__offset(this.bb_pos, 12);
    return offset ? (obj || new tflite_schema.Buffer).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
  };
  
  /**
   * @returns {number}
   */
  tflite_schema.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_schema.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_schema.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_schema.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_schema.Model.startModel = function(builder) {
    builder.startObject(6);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {number} version
   */
  tflite_schema.Model.addVersion = function(builder, version) {
    builder.addFieldInt32(0, version, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} operatorCodesOffset
   */
  tflite_schema.Model.addOperatorCodes = function(builder, operatorCodesOffset) {
    builder.addFieldOffset(1, operatorCodesOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<flatbuffers.Offset>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.Model.startOperatorCodesVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} subgraphsOffset
   */
  tflite_schema.Model.addSubgraphs = function(builder, subgraphsOffset) {
    builder.addFieldOffset(2, subgraphsOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<flatbuffers.Offset>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.Model.startSubgraphsVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} descriptionOffset
   */
  tflite_schema.Model.addDescription = function(builder, descriptionOffset) {
    builder.addFieldOffset(3, descriptionOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} buffersOffset
   */
  tflite_schema.Model.addBuffers = function(builder, buffersOffset) {
    builder.addFieldOffset(4, buffersOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<flatbuffers.Offset>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.Model.startBuffersVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} metadataBufferOffset
   */
  tflite_schema.Model.addMetadataBuffer = function(builder, metadataBufferOffset) {
    builder.addFieldOffset(5, metadataBufferOffset, 0);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {Array.<number>} data
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.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_schema.Model.startMetadataBufferVector = function(builder, numElems) {
    builder.startVector(4, numElems, 4);
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @returns {flatbuffers.Offset}
   */
  tflite_schema.Model.endModel = function(builder) {
    var offset = builder.endObject();
    return offset;
  };
  
  /**
   * @param {flatbuffers.Builder} builder
   * @param {flatbuffers.Offset} offset
   */
  tflite_schema.Model.finishModelBuffer = function(builder, offset) {
    builder.finish(offset, 'TFL3');
  };
  
  if (typeof module !== 'undefined' && typeof module.exports === 'object') {
      module.exports = tflite_schema;
  }
  