tinynn/converter/operators/tflite/generated_ops.py (3,297 lines of code) (raw):

import flatbuffers from ...schemas.tflite import schema_generated as tflite from . import BaseOperator, Offset, create_byte_array, create_numpy_array class AddOperator(BaseOperator): def __init__( self, inputs, outputs, fusedActivationFunction=tflite.ActivationFunctionType.NONE, potScaleInt16=False ) -> None: super().__init__(tflite.BuiltinOperator.ADD, inputs, outputs) self.fusedActivationFunction = fusedActivationFunction self.potScaleInt16 = potScaleInt16 def build(self, builder: flatbuffers.Builder) -> Offset: tflite.AddOptionsStart(builder) tflite.AddOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.AddOptionsAddPotScaleInt16(builder, self.potScaleInt16) options = tflite.AddOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.AddOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class AveragePool2dOperator(BaseOperator): def __init__( self, inputs, outputs, padding=tflite.Padding.SAME, strideW=0, strideH=0, filterWidth=0, filterHeight=0, fusedActivationFunction=tflite.ActivationFunctionType.NONE, ) -> None: super().__init__(tflite.BuiltinOperator.AVERAGE_POOL_2D, inputs, outputs) self.padding = padding self.strideW = strideW self.strideH = strideH self.filterWidth = filterWidth self.filterHeight = filterHeight self.fusedActivationFunction = fusedActivationFunction def build(self, builder: flatbuffers.Builder) -> Offset: tflite.Pool2DOptionsStart(builder) tflite.Pool2DOptionsAddPadding(builder, self.padding) tflite.Pool2DOptionsAddStrideW(builder, self.strideW) tflite.Pool2DOptionsAddStrideH(builder, self.strideH) tflite.Pool2DOptionsAddFilterWidth(builder, self.filterWidth) tflite.Pool2DOptionsAddFilterHeight(builder, self.filterHeight) tflite.Pool2DOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) options = tflite.Pool2DOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.Pool2DOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ConcatenationOperator(BaseOperator): def __init__(self, inputs, outputs, axis=0, fusedActivationFunction=tflite.ActivationFunctionType.NONE) -> None: super().__init__(tflite.BuiltinOperator.CONCATENATION, inputs, outputs) self.axis = axis self.fusedActivationFunction = fusedActivationFunction def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ConcatenationOptionsStart(builder) tflite.ConcatenationOptionsAddAxis(builder, self.axis) tflite.ConcatenationOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) options = tflite.ConcatenationOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ConcatenationOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class Conv2dOperator(BaseOperator): def __init__( self, inputs, outputs, padding=tflite.Padding.SAME, strideW=0, strideH=0, fusedActivationFunction=tflite.ActivationFunctionType.NONE, dilationWFactor=0, dilationHFactor=0, ) -> None: super().__init__(tflite.BuiltinOperator.CONV_2D, inputs, outputs) self.padding = padding self.strideW = strideW self.strideH = strideH self.fusedActivationFunction = fusedActivationFunction self.dilationWFactor = dilationWFactor self.dilationHFactor = dilationHFactor def build(self, builder: flatbuffers.Builder) -> Offset: tflite.Conv2DOptionsStart(builder) tflite.Conv2DOptionsAddPadding(builder, self.padding) tflite.Conv2DOptionsAddStrideW(builder, self.strideW) tflite.Conv2DOptionsAddStrideH(builder, self.strideH) tflite.Conv2DOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.Conv2DOptionsAddDilationWFactor(builder, self.dilationWFactor) tflite.Conv2DOptionsAddDilationHFactor(builder, self.dilationHFactor) options = tflite.Conv2DOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.Conv2DOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class DepthwiseConv2dOperator(BaseOperator): def __init__( self, inputs, outputs, padding=tflite.Padding.SAME, strideW=0, strideH=0, depthMultiplier=0, fusedActivationFunction=tflite.ActivationFunctionType.NONE, dilationWFactor=0, dilationHFactor=0, ) -> None: super().__init__(tflite.BuiltinOperator.DEPTHWISE_CONV_2D, inputs, outputs) self.padding = padding self.strideW = strideW self.strideH = strideH self.depthMultiplier = depthMultiplier self.fusedActivationFunction = fusedActivationFunction self.dilationWFactor = dilationWFactor self.dilationHFactor = dilationHFactor def build(self, builder: flatbuffers.Builder) -> Offset: tflite.DepthwiseConv2DOptionsStart(builder) tflite.DepthwiseConv2DOptionsAddPadding(builder, self.padding) tflite.DepthwiseConv2DOptionsAddStrideW(builder, self.strideW) tflite.DepthwiseConv2DOptionsAddStrideH(builder, self.strideH) tflite.DepthwiseConv2DOptionsAddDepthMultiplier(builder, self.depthMultiplier) tflite.DepthwiseConv2DOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.DepthwiseConv2DOptionsAddDilationWFactor(builder, self.dilationWFactor) tflite.DepthwiseConv2DOptionsAddDilationHFactor(builder, self.dilationHFactor) options = tflite.DepthwiseConv2DOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.DepthwiseConv2DOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class DepthToSpaceOperator(BaseOperator): def __init__(self, inputs, outputs, blockSize=0) -> None: super().__init__(tflite.BuiltinOperator.DEPTH_TO_SPACE, inputs, outputs) self.blockSize = blockSize def build(self, builder: flatbuffers.Builder) -> Offset: tflite.DepthToSpaceOptionsStart(builder) tflite.DepthToSpaceOptionsAddBlockSize(builder, self.blockSize) options = tflite.DepthToSpaceOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.DepthToSpaceOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class DequantizeOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.DEQUANTIZE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.DequantizeOptionsStart(builder) options = tflite.DequantizeOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.DequantizeOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class EmbeddingLookupOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.EMBEDDING_LOOKUP, inputs, outputs) class FloorOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.FLOOR, inputs, outputs) class FullyConnectedOperator(BaseOperator): def __init__( self, inputs, outputs, fusedActivationFunction=tflite.ActivationFunctionType.NONE, weightsFormat=tflite.FullyConnectedOptionsWeightsFormat.DEFAULT, keepNumDims=False, asymmetricQuantizeInputs=False, ) -> None: super().__init__(tflite.BuiltinOperator.FULLY_CONNECTED, inputs, outputs) self.fusedActivationFunction = fusedActivationFunction self.weightsFormat = weightsFormat self.keepNumDims = keepNumDims self.asymmetricQuantizeInputs = asymmetricQuantizeInputs def build(self, builder: flatbuffers.Builder) -> Offset: tflite.FullyConnectedOptionsStart(builder) tflite.FullyConnectedOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.FullyConnectedOptionsAddWeightsFormat(builder, self.weightsFormat) tflite.FullyConnectedOptionsAddKeepNumDims(builder, self.keepNumDims) tflite.FullyConnectedOptionsAddAsymmetricQuantizeInputs(builder, self.asymmetricQuantizeInputs) options = tflite.FullyConnectedOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.FullyConnectedOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class HashtableLookupOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.HASHTABLE_LOOKUP, inputs, outputs) class L2NormalizationOperator(BaseOperator): def __init__(self, inputs, outputs, fusedActivationFunction=tflite.ActivationFunctionType.NONE) -> None: super().__init__(tflite.BuiltinOperator.L2_NORMALIZATION, inputs, outputs) self.fusedActivationFunction = fusedActivationFunction def build(self, builder: flatbuffers.Builder) -> Offset: tflite.L2NormOptionsStart(builder) tflite.L2NormOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) options = tflite.L2NormOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.L2NormOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class L2Pool2dOperator(BaseOperator): def __init__( self, inputs, outputs, padding=tflite.Padding.SAME, strideW=0, strideH=0, filterWidth=0, filterHeight=0, fusedActivationFunction=tflite.ActivationFunctionType.NONE, ) -> None: super().__init__(tflite.BuiltinOperator.L2_POOL_2D, inputs, outputs) self.padding = padding self.strideW = strideW self.strideH = strideH self.filterWidth = filterWidth self.filterHeight = filterHeight self.fusedActivationFunction = fusedActivationFunction def build(self, builder: flatbuffers.Builder) -> Offset: tflite.Pool2DOptionsStart(builder) tflite.Pool2DOptionsAddPadding(builder, self.padding) tflite.Pool2DOptionsAddStrideW(builder, self.strideW) tflite.Pool2DOptionsAddStrideH(builder, self.strideH) tflite.Pool2DOptionsAddFilterWidth(builder, self.filterWidth) tflite.Pool2DOptionsAddFilterHeight(builder, self.filterHeight) tflite.Pool2DOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) options = tflite.Pool2DOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.Pool2DOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LocalResponseNormalizationOperator(BaseOperator): def __init__(self, inputs, outputs, radius=0, bias=0.0, alpha=0.0, beta=0.0) -> None: super().__init__(tflite.BuiltinOperator.LOCAL_RESPONSE_NORMALIZATION, inputs, outputs) self.radius = radius self.bias = bias self.alpha = alpha self.beta = beta def build(self, builder: flatbuffers.Builder) -> Offset: tflite.LocalResponseNormalizationOptionsStart(builder) tflite.LocalResponseNormalizationOptionsAddRadius(builder, self.radius) tflite.LocalResponseNormalizationOptionsAddBias(builder, self.bias) tflite.LocalResponseNormalizationOptionsAddAlpha(builder, self.alpha) tflite.LocalResponseNormalizationOptionsAddBeta(builder, self.beta) options = tflite.LocalResponseNormalizationOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.LocalResponseNormalizationOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LogisticOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.LOGISTIC, inputs, outputs) class LshProjectionOperator(BaseOperator): def __init__(self, inputs, outputs, type=tflite.LSHProjectionType.UNKNOWN) -> None: super().__init__(tflite.BuiltinOperator.LSH_PROJECTION, inputs, outputs) self.type = type def build(self, builder: flatbuffers.Builder) -> Offset: tflite.LSHProjectionOptionsStart(builder) tflite.LSHProjectionOptionsAddType(builder, self.type) options = tflite.LSHProjectionOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.LSHProjectionOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LstmOperator(BaseOperator): def __init__( self, inputs, outputs, fusedActivationFunction=tflite.ActivationFunctionType.NONE, cellClip=0.0, projClip=0.0, kernelType=tflite.LSTMKernelType.FULL, asymmetricQuantizeInputs=False, ) -> None: super().__init__(tflite.BuiltinOperator.LSTM, inputs, outputs) self.fusedActivationFunction = fusedActivationFunction self.cellClip = cellClip self.projClip = projClip self.kernelType = kernelType self.asymmetricQuantizeInputs = asymmetricQuantizeInputs def build(self, builder: flatbuffers.Builder) -> Offset: tflite.LSTMOptionsStart(builder) tflite.LSTMOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.LSTMOptionsAddCellClip(builder, self.cellClip) tflite.LSTMOptionsAddProjClip(builder, self.projClip) tflite.LSTMOptionsAddKernelType(builder, self.kernelType) tflite.LSTMOptionsAddAsymmetricQuantizeInputs(builder, self.asymmetricQuantizeInputs) options = tflite.LSTMOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.LSTMOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class MaxPool2dOperator(BaseOperator): def __init__( self, inputs, outputs, padding=tflite.Padding.SAME, strideW=0, strideH=0, filterWidth=0, filterHeight=0, fusedActivationFunction=tflite.ActivationFunctionType.NONE, ) -> None: super().__init__(tflite.BuiltinOperator.MAX_POOL_2D, inputs, outputs) self.padding = padding self.strideW = strideW self.strideH = strideH self.filterWidth = filterWidth self.filterHeight = filterHeight self.fusedActivationFunction = fusedActivationFunction def build(self, builder: flatbuffers.Builder) -> Offset: tflite.Pool2DOptionsStart(builder) tflite.Pool2DOptionsAddPadding(builder, self.padding) tflite.Pool2DOptionsAddStrideW(builder, self.strideW) tflite.Pool2DOptionsAddStrideH(builder, self.strideH) tflite.Pool2DOptionsAddFilterWidth(builder, self.filterWidth) tflite.Pool2DOptionsAddFilterHeight(builder, self.filterHeight) tflite.Pool2DOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) options = tflite.Pool2DOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.Pool2DOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class MulOperator(BaseOperator): def __init__(self, inputs, outputs, fusedActivationFunction=tflite.ActivationFunctionType.NONE) -> None: super().__init__(tflite.BuiltinOperator.MUL, inputs, outputs) self.fusedActivationFunction = fusedActivationFunction def build(self, builder: flatbuffers.Builder) -> Offset: tflite.MulOptionsStart(builder) tflite.MulOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) options = tflite.MulOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.MulOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ReluOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.RELU, inputs, outputs) class ReluN1To1Operator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.RELU_N1_TO_1, inputs, outputs) class Relu6Operator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.RELU6, inputs, outputs) class ReshapeOperator(BaseOperator): def __init__(self, inputs, outputs, newShape=()) -> None: super().__init__(tflite.BuiltinOperator.RESHAPE, inputs, outputs) self.newShape = newShape def build(self, builder: flatbuffers.Builder) -> Offset: newShape = create_numpy_array(builder, tflite.ReshapeOptions.NewShape, self.newShape) tflite.ReshapeOptionsStart(builder) tflite.ReshapeOptionsAddNewShape(builder, newShape) options = tflite.ReshapeOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReshapeOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ResizeBilinearOperator(BaseOperator): def __init__(self, inputs, outputs, alignCorners=False, halfPixelCenters=False) -> None: super().__init__(tflite.BuiltinOperator.RESIZE_BILINEAR, inputs, outputs) self.alignCorners = alignCorners self.halfPixelCenters = halfPixelCenters def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ResizeBilinearOptionsStart(builder) tflite.ResizeBilinearOptionsAddAlignCorners(builder, self.alignCorners) tflite.ResizeBilinearOptionsAddHalfPixelCenters(builder, self.halfPixelCenters) options = tflite.ResizeBilinearOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ResizeBilinearOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class RnnOperator(BaseOperator): def __init__( self, inputs, outputs, fusedActivationFunction=tflite.ActivationFunctionType.NONE, asymmetricQuantizeInputs=False, ) -> None: super().__init__(tflite.BuiltinOperator.RNN, inputs, outputs) self.fusedActivationFunction = fusedActivationFunction self.asymmetricQuantizeInputs = asymmetricQuantizeInputs def build(self, builder: flatbuffers.Builder) -> Offset: tflite.RNNOptionsStart(builder) tflite.RNNOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.RNNOptionsAddAsymmetricQuantizeInputs(builder, self.asymmetricQuantizeInputs) options = tflite.RNNOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.RNNOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SoftmaxOperator(BaseOperator): def __init__(self, inputs, outputs, beta=0.0) -> None: super().__init__(tflite.BuiltinOperator.SOFTMAX, inputs, outputs) self.beta = beta def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SoftmaxOptionsStart(builder) tflite.SoftmaxOptionsAddBeta(builder, self.beta) options = tflite.SoftmaxOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SoftmaxOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SpaceToDepthOperator(BaseOperator): def __init__(self, inputs, outputs, blockSize=0) -> None: super().__init__(tflite.BuiltinOperator.SPACE_TO_DEPTH, inputs, outputs) self.blockSize = blockSize def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SpaceToDepthOptionsStart(builder) tflite.SpaceToDepthOptionsAddBlockSize(builder, self.blockSize) options = tflite.SpaceToDepthOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SpaceToDepthOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SvdfOperator(BaseOperator): def __init__( self, inputs, outputs, rank=0, fusedActivationFunction=tflite.ActivationFunctionType.NONE, asymmetricQuantizeInputs=False, ) -> None: super().__init__(tflite.BuiltinOperator.SVDF, inputs, outputs) self.rank = rank self.fusedActivationFunction = fusedActivationFunction self.asymmetricQuantizeInputs = asymmetricQuantizeInputs def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SVDFOptionsStart(builder) tflite.SVDFOptionsAddRank(builder, self.rank) tflite.SVDFOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.SVDFOptionsAddAsymmetricQuantizeInputs(builder, self.asymmetricQuantizeInputs) options = tflite.SVDFOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SVDFOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class TanhOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.TANH, inputs, outputs) class ConcatEmbeddingsOperator(BaseOperator): def __init__(self, inputs, outputs, numChannels=0, numColumnsPerChannel=(), embeddingDimPerChannel=()) -> None: super().__init__(tflite.BuiltinOperator.CONCAT_EMBEDDINGS, inputs, outputs) self.numChannels = numChannels self.numColumnsPerChannel = numColumnsPerChannel self.embeddingDimPerChannel = embeddingDimPerChannel def build(self, builder: flatbuffers.Builder) -> Offset: numColumnsPerChannel = create_numpy_array( builder, tflite.ConcatEmbeddingsOptions.NumColumnsPerChannel, self.numColumnsPerChannel ) embeddingDimPerChannel = create_numpy_array( builder, tflite.ConcatEmbeddingsOptions.EmbeddingDimPerChannel, self.embeddingDimPerChannel ) tflite.ConcatEmbeddingsOptionsStart(builder) tflite.ConcatEmbeddingsOptionsAddNumChannels(builder, self.numChannels) tflite.ConcatEmbeddingsOptionsAddNumColumnsPerChannel(builder, numColumnsPerChannel) tflite.ConcatEmbeddingsOptionsAddEmbeddingDimPerChannel(builder, embeddingDimPerChannel) options = tflite.ConcatEmbeddingsOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ConcatEmbeddingsOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SkipGramOperator(BaseOperator): def __init__(self, inputs, outputs, ngramSize=0, maxSkipSize=0, includeAllNgrams=False) -> None: super().__init__(tflite.BuiltinOperator.SKIP_GRAM, inputs, outputs) self.ngramSize = ngramSize self.maxSkipSize = maxSkipSize self.includeAllNgrams = includeAllNgrams def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SkipGramOptionsStart(builder) tflite.SkipGramOptionsAddNgramSize(builder, self.ngramSize) tflite.SkipGramOptionsAddMaxSkipSize(builder, self.maxSkipSize) tflite.SkipGramOptionsAddIncludeAllNgrams(builder, self.includeAllNgrams) options = tflite.SkipGramOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SkipGramOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class CallOperator(BaseOperator): def __init__(self, inputs, outputs, subgraph=0) -> None: super().__init__(tflite.BuiltinOperator.CALL, inputs, outputs) self.subgraph = subgraph def build(self, builder: flatbuffers.Builder) -> Offset: tflite.CallOptionsStart(builder) tflite.CallOptionsAddSubgraph(builder, self.subgraph) options = tflite.CallOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.CallOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class CustomOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.CUSTOM, inputs, outputs) self.custom_options = None def build(self, builder: flatbuffers.Builder) -> Offset: tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) if self.custom_options is not None: custom_options = create_byte_array(builder, tflite.Operator.CustomOptions, self.custom_options) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.NONE) tflite.OperatorAddBuiltinOptions(builder, 0) if self.custom_options is not None: tflite.OperatorAddCustomOptionsFormat(builder, tflite.CustomOptionsFormat.FLEXBUFFERS) tflite.OperatorAddCustomOptions(builder, custom_options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class EmbeddingLookupSparseOperator(BaseOperator): def __init__(self, inputs, outputs, combiner=tflite.CombinerType.SUM) -> None: super().__init__(tflite.BuiltinOperator.EMBEDDING_LOOKUP_SPARSE, inputs, outputs) self.combiner = combiner def build(self, builder: flatbuffers.Builder) -> Offset: tflite.EmbeddingLookupSparseOptionsStart(builder) tflite.EmbeddingLookupSparseOptionsAddCombiner(builder, self.combiner) options = tflite.EmbeddingLookupSparseOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.EmbeddingLookupSparseOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class PadOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.PAD, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.PadOptionsStart(builder) options = tflite.PadOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.PadOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class UnidirectionalSequenceRnnOperator(BaseOperator): def __init__( self, inputs, outputs, timeMajor=False, fusedActivationFunction=tflite.ActivationFunctionType.NONE, asymmetricQuantizeInputs=False, ) -> None: super().__init__(tflite.BuiltinOperator.UNIDIRECTIONAL_SEQUENCE_RNN, inputs, outputs) self.timeMajor = timeMajor self.fusedActivationFunction = fusedActivationFunction self.asymmetricQuantizeInputs = asymmetricQuantizeInputs def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SequenceRNNOptionsStart(builder) tflite.SequenceRNNOptionsAddTimeMajor(builder, self.timeMajor) tflite.SequenceRNNOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.SequenceRNNOptionsAddAsymmetricQuantizeInputs(builder, self.asymmetricQuantizeInputs) options = tflite.SequenceRNNOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SequenceRNNOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class GatherOperator(BaseOperator): def __init__(self, inputs, outputs, axis=0, batchDims=0) -> None: super().__init__(tflite.BuiltinOperator.GATHER, inputs, outputs) self.axis = axis self.batchDims = batchDims def build(self, builder: flatbuffers.Builder) -> Offset: tflite.GatherOptionsStart(builder) tflite.GatherOptionsAddAxis(builder, self.axis) tflite.GatherOptionsAddBatchDims(builder, self.batchDims) options = tflite.GatherOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.GatherOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class BatchToSpaceNdOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.BATCH_TO_SPACE_ND, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.BatchToSpaceNDOptionsStart(builder) options = tflite.BatchToSpaceNDOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.BatchToSpaceNDOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SpaceToBatchNdOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.SPACE_TO_BATCH_ND, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SpaceToBatchNDOptionsStart(builder) options = tflite.SpaceToBatchNDOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SpaceToBatchNDOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class TransposeOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.TRANSPOSE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.TransposeOptionsStart(builder) options = tflite.TransposeOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.TransposeOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class MeanOperator(BaseOperator): def __init__(self, inputs, outputs, keepDims=False) -> None: super().__init__(tflite.BuiltinOperator.MEAN, inputs, outputs) self.keepDims = keepDims def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ReducerOptionsStart(builder) tflite.ReducerOptionsAddKeepDims(builder, self.keepDims) options = tflite.ReducerOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReducerOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SubOperator(BaseOperator): def __init__( self, inputs, outputs, fusedActivationFunction=tflite.ActivationFunctionType.NONE, potScaleInt16=False ) -> None: super().__init__(tflite.BuiltinOperator.SUB, inputs, outputs) self.fusedActivationFunction = fusedActivationFunction self.potScaleInt16 = potScaleInt16 def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SubOptionsStart(builder) tflite.SubOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.SubOptionsAddPotScaleInt16(builder, self.potScaleInt16) options = tflite.SubOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SubOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class DivOperator(BaseOperator): def __init__(self, inputs, outputs, fusedActivationFunction=tflite.ActivationFunctionType.NONE) -> None: super().__init__(tflite.BuiltinOperator.DIV, inputs, outputs) self.fusedActivationFunction = fusedActivationFunction def build(self, builder: flatbuffers.Builder) -> Offset: tflite.DivOptionsStart(builder) tflite.DivOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) options = tflite.DivOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.DivOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SqueezeOperator(BaseOperator): def __init__(self, inputs, outputs, squeezeDims=()) -> None: super().__init__(tflite.BuiltinOperator.SQUEEZE, inputs, outputs) self.squeezeDims = squeezeDims def build(self, builder: flatbuffers.Builder) -> Offset: squeezeDims = create_numpy_array(builder, tflite.SqueezeOptions.SqueezeDims, self.squeezeDims) tflite.SqueezeOptionsStart(builder) tflite.SqueezeOptionsAddSqueezeDims(builder, squeezeDims) options = tflite.SqueezeOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SqueezeOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class UnidirectionalSequenceLstmOperator(BaseOperator): def __init__( self, inputs, outputs, fusedActivationFunction=tflite.ActivationFunctionType.NONE, cellClip=0.0, projClip=0.0, timeMajor=False, asymmetricQuantizeInputs=False, diagonalRecurrentTensors=False, ) -> None: super().__init__(tflite.BuiltinOperator.UNIDIRECTIONAL_SEQUENCE_LSTM, inputs, outputs) self.fusedActivationFunction = fusedActivationFunction self.cellClip = cellClip self.projClip = projClip self.timeMajor = timeMajor self.asymmetricQuantizeInputs = asymmetricQuantizeInputs self.diagonalRecurrentTensors = diagonalRecurrentTensors def build(self, builder: flatbuffers.Builder) -> Offset: tflite.UnidirectionalSequenceLSTMOptionsStart(builder) tflite.UnidirectionalSequenceLSTMOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.UnidirectionalSequenceLSTMOptionsAddCellClip(builder, self.cellClip) tflite.UnidirectionalSequenceLSTMOptionsAddProjClip(builder, self.projClip) tflite.UnidirectionalSequenceLSTMOptionsAddTimeMajor(builder, self.timeMajor) tflite.UnidirectionalSequenceLSTMOptionsAddAsymmetricQuantizeInputs(builder, self.asymmetricQuantizeInputs) tflite.UnidirectionalSequenceLSTMOptionsAddDiagonalRecurrentTensors(builder, self.diagonalRecurrentTensors) options = tflite.UnidirectionalSequenceLSTMOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.UnidirectionalSequenceLSTMOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class StridedSliceOperator(BaseOperator): def __init__( self, inputs, outputs, beginMask=0, endMask=0, ellipsisMask=0, newAxisMask=0, shrinkAxisMask=0 ) -> None: super().__init__(tflite.BuiltinOperator.STRIDED_SLICE, inputs, outputs) self.beginMask = beginMask self.endMask = endMask self.ellipsisMask = ellipsisMask self.newAxisMask = newAxisMask self.shrinkAxisMask = shrinkAxisMask def build(self, builder: flatbuffers.Builder) -> Offset: tflite.StridedSliceOptionsStart(builder) tflite.StridedSliceOptionsAddBeginMask(builder, self.beginMask) tflite.StridedSliceOptionsAddEndMask(builder, self.endMask) tflite.StridedSliceOptionsAddEllipsisMask(builder, self.ellipsisMask) tflite.StridedSliceOptionsAddNewAxisMask(builder, self.newAxisMask) tflite.StridedSliceOptionsAddShrinkAxisMask(builder, self.shrinkAxisMask) options = tflite.StridedSliceOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.StridedSliceOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class BidirectionalSequenceRnnOperator(BaseOperator): def __init__( self, inputs, outputs, timeMajor=False, fusedActivationFunction=tflite.ActivationFunctionType.NONE, mergeOutputs=False, asymmetricQuantizeInputs=False, ) -> None: super().__init__(tflite.BuiltinOperator.BIDIRECTIONAL_SEQUENCE_RNN, inputs, outputs) self.timeMajor = timeMajor self.fusedActivationFunction = fusedActivationFunction self.mergeOutputs = mergeOutputs self.asymmetricQuantizeInputs = asymmetricQuantizeInputs def build(self, builder: flatbuffers.Builder) -> Offset: tflite.BidirectionalSequenceRNNOptionsStart(builder) tflite.BidirectionalSequenceRNNOptionsAddTimeMajor(builder, self.timeMajor) tflite.BidirectionalSequenceRNNOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.BidirectionalSequenceRNNOptionsAddMergeOutputs(builder, self.mergeOutputs) tflite.BidirectionalSequenceRNNOptionsAddAsymmetricQuantizeInputs(builder, self.asymmetricQuantizeInputs) options = tflite.BidirectionalSequenceRNNOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.BidirectionalSequenceRNNOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ExpOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.EXP, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ExpOptionsStart(builder) options = tflite.ExpOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ExpOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class TopkV2Operator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.TOPK_V2, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.TopKV2OptionsStart(builder) options = tflite.TopKV2OptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.TopKV2Options) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SplitOperator(BaseOperator): def __init__(self, inputs, outputs, numSplits=0) -> None: super().__init__(tflite.BuiltinOperator.SPLIT, inputs, outputs) self.numSplits = numSplits def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SplitOptionsStart(builder) tflite.SplitOptionsAddNumSplits(builder, self.numSplits) options = tflite.SplitOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SplitOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LogSoftmaxOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.LOG_SOFTMAX, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.LogSoftmaxOptionsStart(builder) options = tflite.LogSoftmaxOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.LogSoftmaxOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class DelegateOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.DELEGATE, inputs, outputs) class BidirectionalSequenceLstmOperator(BaseOperator): def __init__( self, inputs, outputs, fusedActivationFunction=tflite.ActivationFunctionType.NONE, cellClip=0.0, projClip=0.0, mergeOutputs=False, timeMajor=False, asymmetricQuantizeInputs=False, ) -> None: super().__init__(tflite.BuiltinOperator.BIDIRECTIONAL_SEQUENCE_LSTM, inputs, outputs) self.fusedActivationFunction = fusedActivationFunction self.cellClip = cellClip self.projClip = projClip self.mergeOutputs = mergeOutputs self.timeMajor = timeMajor self.asymmetricQuantizeInputs = asymmetricQuantizeInputs def build(self, builder: flatbuffers.Builder) -> Offset: tflite.BidirectionalSequenceLSTMOptionsStart(builder) tflite.BidirectionalSequenceLSTMOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.BidirectionalSequenceLSTMOptionsAddCellClip(builder, self.cellClip) tflite.BidirectionalSequenceLSTMOptionsAddProjClip(builder, self.projClip) tflite.BidirectionalSequenceLSTMOptionsAddMergeOutputs(builder, self.mergeOutputs) tflite.BidirectionalSequenceLSTMOptionsAddTimeMajor(builder, self.timeMajor) tflite.BidirectionalSequenceLSTMOptionsAddAsymmetricQuantizeInputs(builder, self.asymmetricQuantizeInputs) options = tflite.BidirectionalSequenceLSTMOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.BidirectionalSequenceLSTMOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class CastOperator(BaseOperator): def __init__( self, inputs, outputs, inDataType=tflite.TensorType.FLOAT32, outDataType=tflite.TensorType.FLOAT32 ) -> None: super().__init__(tflite.BuiltinOperator.CAST, inputs, outputs) self.inDataType = inDataType self.outDataType = outDataType def build(self, builder: flatbuffers.Builder) -> Offset: tflite.CastOptionsStart(builder) tflite.CastOptionsAddInDataType(builder, self.inDataType) tflite.CastOptionsAddOutDataType(builder, self.outDataType) options = tflite.CastOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.CastOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class PreluOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.PRELU, inputs, outputs) class MaximumOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.MAXIMUM, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.MaximumMinimumOptionsStart(builder) options = tflite.MaximumMinimumOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.MaximumMinimumOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ArgMaxOperator(BaseOperator): def __init__(self, inputs, outputs, outputType=tflite.TensorType.FLOAT32) -> None: super().__init__(tflite.BuiltinOperator.ARG_MAX, inputs, outputs) self.outputType = outputType def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ArgMaxOptionsStart(builder) tflite.ArgMaxOptionsAddOutputType(builder, self.outputType) options = tflite.ArgMaxOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ArgMaxOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class MinimumOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.MINIMUM, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.MaximumMinimumOptionsStart(builder) options = tflite.MaximumMinimumOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.MaximumMinimumOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LessOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.LESS, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.LessOptionsStart(builder) options = tflite.LessOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.LessOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class NegOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.NEG, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.NegOptionsStart(builder) options = tflite.NegOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.NegOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class Padv2Operator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.PADV2, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.PadV2OptionsStart(builder) options = tflite.PadV2OptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.PadV2Options) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class GreaterOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.GREATER, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.GreaterOptionsStart(builder) options = tflite.GreaterOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.GreaterOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class GreaterEqualOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.GREATER_EQUAL, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.GreaterEqualOptionsStart(builder) options = tflite.GreaterEqualOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.GreaterEqualOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LessEqualOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.LESS_EQUAL, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.LessEqualOptionsStart(builder) options = tflite.LessEqualOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.LessEqualOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SelectOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.SELECT, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SelectOptionsStart(builder) options = tflite.SelectOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SelectOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SliceOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.SLICE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SliceOptionsStart(builder) options = tflite.SliceOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SliceOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SinOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.SIN, inputs, outputs) class TransposeConvOperator(BaseOperator): def __init__( self, inputs, outputs, padding=tflite.Padding.SAME, strideW=0, strideH=0, fusedActivationFunction=tflite.ActivationFunctionType.NONE, ) -> None: super().__init__(tflite.BuiltinOperator.TRANSPOSE_CONV, inputs, outputs) self.padding = padding self.strideW = strideW self.strideH = strideH self.fusedActivationFunction = fusedActivationFunction def build(self, builder: flatbuffers.Builder) -> Offset: tflite.TransposeConvOptionsStart(builder) tflite.TransposeConvOptionsAddPadding(builder, self.padding) tflite.TransposeConvOptionsAddStrideW(builder, self.strideW) tflite.TransposeConvOptionsAddStrideH(builder, self.strideH) tflite.TransposeConvOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) options = tflite.TransposeConvOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.TransposeConvOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SparseToDenseOperator(BaseOperator): def __init__(self, inputs, outputs, validateIndices=False) -> None: super().__init__(tflite.BuiltinOperator.SPARSE_TO_DENSE, inputs, outputs) self.validateIndices = validateIndices def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SparseToDenseOptionsStart(builder) tflite.SparseToDenseOptionsAddValidateIndices(builder, self.validateIndices) options = tflite.SparseToDenseOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SparseToDenseOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class TileOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.TILE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.TileOptionsStart(builder) options = tflite.TileOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.TileOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ExpandDimsOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.EXPAND_DIMS, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ExpandDimsOptionsStart(builder) options = tflite.ExpandDimsOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ExpandDimsOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class EqualOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.EQUAL, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.EqualOptionsStart(builder) options = tflite.EqualOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.EqualOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class NotEqualOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.NOT_EQUAL, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.NotEqualOptionsStart(builder) options = tflite.NotEqualOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.NotEqualOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LogOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.LOG, inputs, outputs) class SumOperator(BaseOperator): def __init__(self, inputs, outputs, keepDims=False) -> None: super().__init__(tflite.BuiltinOperator.SUM, inputs, outputs) self.keepDims = keepDims def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ReducerOptionsStart(builder) tflite.ReducerOptionsAddKeepDims(builder, self.keepDims) options = tflite.ReducerOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReducerOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SqrtOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.SQRT, inputs, outputs) class RsqrtOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.RSQRT, inputs, outputs) class ShapeOperator(BaseOperator): def __init__(self, inputs, outputs, outType=tflite.TensorType.FLOAT32) -> None: super().__init__(tflite.BuiltinOperator.SHAPE, inputs, outputs) self.outType = outType def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ShapeOptionsStart(builder) tflite.ShapeOptionsAddOutType(builder, self.outType) options = tflite.ShapeOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ShapeOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class PowOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.POW, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.PowOptionsStart(builder) options = tflite.PowOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.PowOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ArgMinOperator(BaseOperator): def __init__(self, inputs, outputs, outputType=tflite.TensorType.FLOAT32) -> None: super().__init__(tflite.BuiltinOperator.ARG_MIN, inputs, outputs) self.outputType = outputType def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ArgMinOptionsStart(builder) tflite.ArgMinOptionsAddOutputType(builder, self.outputType) options = tflite.ArgMinOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ArgMinOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class FakeQuantOperator(BaseOperator): def __init__(self, inputs, outputs, min=0.0, max=0.0, numBits=0, narrowRange=False) -> None: super().__init__(tflite.BuiltinOperator.FAKE_QUANT, inputs, outputs) self.min = min self.max = max self.numBits = numBits self.narrowRange = narrowRange def build(self, builder: flatbuffers.Builder) -> Offset: tflite.FakeQuantOptionsStart(builder) tflite.FakeQuantOptionsAddMin(builder, self.min) tflite.FakeQuantOptionsAddMax(builder, self.max) tflite.FakeQuantOptionsAddNumBits(builder, self.numBits) tflite.FakeQuantOptionsAddNarrowRange(builder, self.narrowRange) options = tflite.FakeQuantOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.FakeQuantOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ReduceProdOperator(BaseOperator): def __init__(self, inputs, outputs, keepDims=False) -> None: super().__init__(tflite.BuiltinOperator.REDUCE_PROD, inputs, outputs) self.keepDims = keepDims def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ReducerOptionsStart(builder) tflite.ReducerOptionsAddKeepDims(builder, self.keepDims) options = tflite.ReducerOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReducerOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ReduceMaxOperator(BaseOperator): def __init__(self, inputs, outputs, keepDims=False) -> None: super().__init__(tflite.BuiltinOperator.REDUCE_MAX, inputs, outputs) self.keepDims = keepDims def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ReducerOptionsStart(builder) tflite.ReducerOptionsAddKeepDims(builder, self.keepDims) options = tflite.ReducerOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReducerOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class PackOperator(BaseOperator): def __init__(self, inputs, outputs, valuesCount=0, axis=0) -> None: super().__init__(tflite.BuiltinOperator.PACK, inputs, outputs) self.valuesCount = valuesCount self.axis = axis def build(self, builder: flatbuffers.Builder) -> Offset: tflite.PackOptionsStart(builder) tflite.PackOptionsAddValuesCount(builder, self.valuesCount) tflite.PackOptionsAddAxis(builder, self.axis) options = tflite.PackOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.PackOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LogicalOrOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.LOGICAL_OR, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.LogicalOrOptionsStart(builder) options = tflite.LogicalOrOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.LogicalOrOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class OneHotOperator(BaseOperator): def __init__(self, inputs, outputs, axis=0) -> None: super().__init__(tflite.BuiltinOperator.ONE_HOT, inputs, outputs) self.axis = axis def build(self, builder: flatbuffers.Builder) -> Offset: tflite.OneHotOptionsStart(builder) tflite.OneHotOptionsAddAxis(builder, self.axis) options = tflite.OneHotOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.OneHotOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LogicalAndOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.LOGICAL_AND, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.LogicalAndOptionsStart(builder) options = tflite.LogicalAndOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.LogicalAndOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LogicalNotOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.LOGICAL_NOT, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.LogicalNotOptionsStart(builder) options = tflite.LogicalNotOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.LogicalNotOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class UnpackOperator(BaseOperator): def __init__(self, inputs, outputs, num=0, axis=0) -> None: super().__init__(tflite.BuiltinOperator.UNPACK, inputs, outputs) self.num = num self.axis = axis def build(self, builder: flatbuffers.Builder) -> Offset: tflite.UnpackOptionsStart(builder) tflite.UnpackOptionsAddNum(builder, self.num) tflite.UnpackOptionsAddAxis(builder, self.axis) options = tflite.UnpackOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.UnpackOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ReduceMinOperator(BaseOperator): def __init__(self, inputs, outputs, keepDims=False) -> None: super().__init__(tflite.BuiltinOperator.REDUCE_MIN, inputs, outputs) self.keepDims = keepDims def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ReducerOptionsStart(builder) tflite.ReducerOptionsAddKeepDims(builder, self.keepDims) options = tflite.ReducerOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReducerOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class FloorDivOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.FLOOR_DIV, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.FloorDivOptionsStart(builder) options = tflite.FloorDivOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.FloorDivOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ReduceAnyOperator(BaseOperator): def __init__(self, inputs, outputs, keepDims=False) -> None: super().__init__(tflite.BuiltinOperator.REDUCE_ANY, inputs, outputs) self.keepDims = keepDims def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ReducerOptionsStart(builder) tflite.ReducerOptionsAddKeepDims(builder, self.keepDims) options = tflite.ReducerOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReducerOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SquareOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.SQUARE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SquareOptionsStart(builder) options = tflite.SquareOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SquareOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ZerosLikeOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.ZEROS_LIKE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ZerosLikeOptionsStart(builder) options = tflite.ZerosLikeOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ZerosLikeOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class FillOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.FILL, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.FillOptionsStart(builder) options = tflite.FillOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.FillOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class FloorModOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.FLOOR_MOD, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.FloorModOptionsStart(builder) options = tflite.FloorModOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.FloorModOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class RangeOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.RANGE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.RangeOptionsStart(builder) options = tflite.RangeOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.RangeOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ResizeNearestNeighborOperator(BaseOperator): def __init__(self, inputs, outputs, alignCorners=False, halfPixelCenters=False) -> None: super().__init__(tflite.BuiltinOperator.RESIZE_NEAREST_NEIGHBOR, inputs, outputs) self.alignCorners = alignCorners self.halfPixelCenters = halfPixelCenters def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ResizeNearestNeighborOptionsStart(builder) tflite.ResizeNearestNeighborOptionsAddAlignCorners(builder, self.alignCorners) tflite.ResizeNearestNeighborOptionsAddHalfPixelCenters(builder, self.halfPixelCenters) options = tflite.ResizeNearestNeighborOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ResizeNearestNeighborOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class LeakyReluOperator(BaseOperator): def __init__(self, inputs, outputs, alpha=0.0) -> None: super().__init__(tflite.BuiltinOperator.LEAKY_RELU, inputs, outputs) self.alpha = alpha def build(self, builder: flatbuffers.Builder) -> Offset: tflite.LeakyReluOptionsStart(builder) tflite.LeakyReluOptionsAddAlpha(builder, self.alpha) options = tflite.LeakyReluOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.LeakyReluOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SquaredDifferenceOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.SQUARED_DIFFERENCE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SquaredDifferenceOptionsStart(builder) options = tflite.SquaredDifferenceOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SquaredDifferenceOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class MirrorPadOperator(BaseOperator): def __init__(self, inputs, outputs, mode=tflite.MirrorPadMode.REFLECT) -> None: super().__init__(tflite.BuiltinOperator.MIRROR_PAD, inputs, outputs) self.mode = mode def build(self, builder: flatbuffers.Builder) -> Offset: tflite.MirrorPadOptionsStart(builder) tflite.MirrorPadOptionsAddMode(builder, self.mode) options = tflite.MirrorPadOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.MirrorPadOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class AbsOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.ABS, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.AbsOptionsStart(builder) options = tflite.AbsOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.AbsOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SplitVOperator(BaseOperator): def __init__(self, inputs, outputs, numSplits=0) -> None: super().__init__(tflite.BuiltinOperator.SPLIT_V, inputs, outputs) self.numSplits = numSplits def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SplitVOptionsStart(builder) tflite.SplitVOptionsAddNumSplits(builder, self.numSplits) options = tflite.SplitVOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SplitVOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class UniqueOperator(BaseOperator): def __init__(self, inputs, outputs, idxOutType=tflite.TensorType.FLOAT32) -> None: super().__init__(tflite.BuiltinOperator.UNIQUE, inputs, outputs) self.idxOutType = idxOutType def build(self, builder: flatbuffers.Builder) -> Offset: tflite.UniqueOptionsStart(builder) tflite.UniqueOptionsAddIdxOutType(builder, self.idxOutType) options = tflite.UniqueOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.UniqueOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class CeilOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.CEIL, inputs, outputs) class ReverseV2Operator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.REVERSE_V2, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ReverseV2OptionsStart(builder) options = tflite.ReverseV2OptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReverseV2Options) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class AddNOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.ADD_N, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.AddNOptionsStart(builder) options = tflite.AddNOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.AddNOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class GatherNdOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.GATHER_ND, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.GatherNdOptionsStart(builder) options = tflite.GatherNdOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.GatherNdOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class CosOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.COS, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.CosOptionsStart(builder) options = tflite.CosOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.CosOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class WhereOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.WHERE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.WhereOptionsStart(builder) options = tflite.WhereOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.WhereOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class RankOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.RANK, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.RankOptionsStart(builder) options = tflite.RankOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.RankOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class EluOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.ELU, inputs, outputs) class ReverseSequenceOperator(BaseOperator): def __init__(self, inputs, outputs, seqDim=0, batchDim=0) -> None: super().__init__(tflite.BuiltinOperator.REVERSE_SEQUENCE, inputs, outputs) self.seqDim = seqDim self.batchDim = batchDim def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ReverseSequenceOptionsStart(builder) tflite.ReverseSequenceOptionsAddSeqDim(builder, self.seqDim) tflite.ReverseSequenceOptionsAddBatchDim(builder, self.batchDim) options = tflite.ReverseSequenceOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReverseSequenceOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class MatrixDiagOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.MATRIX_DIAG, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.MatrixDiagOptionsStart(builder) options = tflite.MatrixDiagOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.MatrixDiagOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class QuantizeOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.QUANTIZE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.QuantizeOptionsStart(builder) options = tflite.QuantizeOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.QuantizeOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class MatrixSetDiagOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.MATRIX_SET_DIAG, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.MatrixSetDiagOptionsStart(builder) options = tflite.MatrixSetDiagOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.MatrixSetDiagOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class RoundOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.ROUND, inputs, outputs) class HardSwishOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.HARD_SWISH, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.HardSwishOptionsStart(builder) options = tflite.HardSwishOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.HardSwishOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class IfOperator(BaseOperator): def __init__(self, inputs, outputs, thenSubgraphIndex=0, elseSubgraphIndex=0) -> None: super().__init__(tflite.BuiltinOperator.IF, inputs, outputs) self.thenSubgraphIndex = thenSubgraphIndex self.elseSubgraphIndex = elseSubgraphIndex def build(self, builder: flatbuffers.Builder) -> Offset: tflite.IfOptionsStart(builder) tflite.IfOptionsAddThenSubgraphIndex(builder, self.thenSubgraphIndex) tflite.IfOptionsAddElseSubgraphIndex(builder, self.elseSubgraphIndex) options = tflite.IfOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.IfOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class WhileOperator(BaseOperator): def __init__(self, inputs, outputs, condSubgraphIndex=0, bodySubgraphIndex=0) -> None: super().__init__(tflite.BuiltinOperator.WHILE, inputs, outputs) self.condSubgraphIndex = condSubgraphIndex self.bodySubgraphIndex = bodySubgraphIndex def build(self, builder: flatbuffers.Builder) -> Offset: tflite.WhileOptionsStart(builder) tflite.WhileOptionsAddCondSubgraphIndex(builder, self.condSubgraphIndex) tflite.WhileOptionsAddBodySubgraphIndex(builder, self.bodySubgraphIndex) options = tflite.WhileOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.WhileOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class NonMaxSuppressionV4Operator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.NON_MAX_SUPPRESSION_V4, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.NonMaxSuppressionV4OptionsStart(builder) options = tflite.NonMaxSuppressionV4OptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.NonMaxSuppressionV4Options) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class NonMaxSuppressionV5Operator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.NON_MAX_SUPPRESSION_V5, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.NonMaxSuppressionV5OptionsStart(builder) options = tflite.NonMaxSuppressionV5OptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.NonMaxSuppressionV5Options) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ScatterNdOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.SCATTER_ND, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ScatterNdOptionsStart(builder) options = tflite.ScatterNdOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ScatterNdOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SelectV2Operator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.SELECT_V2, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SelectV2OptionsStart(builder) options = tflite.SelectV2OptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SelectV2Options) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class DensifyOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.DENSIFY, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.DensifyOptionsStart(builder) options = tflite.DensifyOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.DensifyOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SegmentSumOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.SEGMENT_SUM, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SegmentSumOptionsStart(builder) options = tflite.SegmentSumOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SegmentSumOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class BatchMatmulOperator(BaseOperator): def __init__(self, inputs, outputs, adjX=False, adjY=False, asymmetricQuantizeInputs=False) -> None: super().__init__(tflite.BuiltinOperator.BATCH_MATMUL, inputs, outputs) self.adjX = adjX self.adjY = adjY self.asymmetricQuantizeInputs = asymmetricQuantizeInputs def build(self, builder: flatbuffers.Builder) -> Offset: tflite.BatchMatMulOptionsStart(builder) tflite.BatchMatMulOptionsAddAdjX(builder, self.adjX) tflite.BatchMatMulOptionsAddAdjY(builder, self.adjY) tflite.BatchMatMulOptionsAddAsymmetricQuantizeInputs(builder, self.asymmetricQuantizeInputs) options = tflite.BatchMatMulOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.BatchMatMulOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class PlaceholderForGreaterOpCodesOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.PLACEHOLDER_FOR_GREATER_OP_CODES, inputs, outputs) class CumsumOperator(BaseOperator): def __init__(self, inputs, outputs, exclusive=False, reverse=False) -> None: super().__init__(tflite.BuiltinOperator.CUMSUM, inputs, outputs) self.exclusive = exclusive self.reverse = reverse def build(self, builder: flatbuffers.Builder) -> Offset: tflite.CumsumOptionsStart(builder) tflite.CumsumOptionsAddExclusive(builder, self.exclusive) tflite.CumsumOptionsAddReverse(builder, self.reverse) options = tflite.CumsumOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.CumsumOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class CallOnceOperator(BaseOperator): def __init__(self, inputs, outputs, initSubgraphIndex=0) -> None: super().__init__(tflite.BuiltinOperator.CALL_ONCE, inputs, outputs) self.initSubgraphIndex = initSubgraphIndex def build(self, builder: flatbuffers.Builder) -> Offset: tflite.CallOnceOptionsStart(builder) tflite.CallOnceOptionsAddInitSubgraphIndex(builder, self.initSubgraphIndex) options = tflite.CallOnceOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.CallOnceOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class BroadcastToOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.BROADCAST_TO, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.BroadcastToOptionsStart(builder) options = tflite.BroadcastToOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.BroadcastToOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class Rfft2dOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.RFFT2D, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.Rfft2dOptionsStart(builder) options = tflite.Rfft2dOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.Rfft2dOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class Conv3dOperator(BaseOperator): def __init__( self, inputs, outputs, padding=tflite.Padding.SAME, strideD=0, strideW=0, strideH=0, fusedActivationFunction=tflite.ActivationFunctionType.NONE, dilationDFactor=0, dilationWFactor=0, dilationHFactor=0, ) -> None: super().__init__(tflite.BuiltinOperator.CONV_3D, inputs, outputs) self.padding = padding self.strideD = strideD self.strideW = strideW self.strideH = strideH self.fusedActivationFunction = fusedActivationFunction self.dilationDFactor = dilationDFactor self.dilationWFactor = dilationWFactor self.dilationHFactor = dilationHFactor def build(self, builder: flatbuffers.Builder) -> Offset: tflite.Conv3DOptionsStart(builder) tflite.Conv3DOptionsAddPadding(builder, self.padding) tflite.Conv3DOptionsAddStrideD(builder, self.strideD) tflite.Conv3DOptionsAddStrideW(builder, self.strideW) tflite.Conv3DOptionsAddStrideH(builder, self.strideH) tflite.Conv3DOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.Conv3DOptionsAddDilationDFactor(builder, self.dilationDFactor) tflite.Conv3DOptionsAddDilationWFactor(builder, self.dilationWFactor) tflite.Conv3DOptionsAddDilationHFactor(builder, self.dilationHFactor) options = tflite.Conv3DOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.Conv3DOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ImagOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.IMAG, inputs, outputs) class RealOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.REAL, inputs, outputs) class ComplexAbsOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.COMPLEX_ABS, inputs, outputs) class HashtableOperator(BaseOperator): def __init__( self, inputs, outputs, tableId=0, keyDtype=tflite.TensorType.FLOAT32, valueDtype=tflite.TensorType.FLOAT32 ) -> None: super().__init__(tflite.BuiltinOperator.HASHTABLE, inputs, outputs) self.tableId = tableId self.keyDtype = keyDtype self.valueDtype = valueDtype def build(self, builder: flatbuffers.Builder) -> Offset: tflite.HashtableOptionsStart(builder) tflite.HashtableOptionsAddTableId(builder, self.tableId) tflite.HashtableOptionsAddKeyDtype(builder, self.keyDtype) tflite.HashtableOptionsAddValueDtype(builder, self.valueDtype) options = tflite.HashtableOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.HashtableOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class HashtableFindOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.HASHTABLE_FIND, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.HashtableFindOptionsStart(builder) options = tflite.HashtableFindOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.HashtableFindOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class HashtableImportOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.HASHTABLE_IMPORT, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.HashtableImportOptionsStart(builder) options = tflite.HashtableImportOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.HashtableImportOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class HashtableSizeOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.HASHTABLE_SIZE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.HashtableSizeOptionsStart(builder) options = tflite.HashtableSizeOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.HashtableSizeOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ReduceAllOperator(BaseOperator): def __init__(self, inputs, outputs, keepDims=False) -> None: super().__init__(tflite.BuiltinOperator.REDUCE_ALL, inputs, outputs) self.keepDims = keepDims def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ReducerOptionsStart(builder) tflite.ReducerOptionsAddKeepDims(builder, self.keepDims) options = tflite.ReducerOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReducerOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class Conv3dTransposeOperator(BaseOperator): def __init__( self, inputs, outputs, padding=tflite.Padding.SAME, strideD=0, strideW=0, strideH=0, fusedActivationFunction=tflite.ActivationFunctionType.NONE, dilationDFactor=0, dilationWFactor=0, dilationHFactor=0, ) -> None: super().__init__(tflite.BuiltinOperator.CONV_3D_TRANSPOSE, inputs, outputs) self.padding = padding self.strideD = strideD self.strideW = strideW self.strideH = strideH self.fusedActivationFunction = fusedActivationFunction self.dilationDFactor = dilationDFactor self.dilationWFactor = dilationWFactor self.dilationHFactor = dilationHFactor def build(self, builder: flatbuffers.Builder) -> Offset: tflite.Conv3DOptionsStart(builder) tflite.Conv3DOptionsAddPadding(builder, self.padding) tflite.Conv3DOptionsAddStrideD(builder, self.strideD) tflite.Conv3DOptionsAddStrideW(builder, self.strideW) tflite.Conv3DOptionsAddStrideH(builder, self.strideH) tflite.Conv3DOptionsAddFusedActivationFunction(builder, self.fusedActivationFunction) tflite.Conv3DOptionsAddDilationDFactor(builder, self.dilationDFactor) tflite.Conv3DOptionsAddDilationWFactor(builder, self.dilationWFactor) tflite.Conv3DOptionsAddDilationHFactor(builder, self.dilationHFactor) options = tflite.Conv3DOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.Conv3DOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class VarHandleOperator(BaseOperator): def __init__(self, inputs, outputs, container=(), sharedName=()) -> None: super().__init__(tflite.BuiltinOperator.VAR_HANDLE, inputs, outputs) self.container = container self.sharedName = sharedName def build(self, builder: flatbuffers.Builder) -> Offset: container = create_numpy_array(builder, tflite.VarHandleOptions.Container, self.container) sharedName = create_numpy_array(builder, tflite.VarHandleOptions.SharedName, self.sharedName) tflite.VarHandleOptionsStart(builder) tflite.VarHandleOptionsAddContainer(builder, container) tflite.VarHandleOptionsAddSharedName(builder, sharedName) options = tflite.VarHandleOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.VarHandleOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class ReadVariableOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.READ_VARIABLE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ReadVariableOptionsStart(builder) options = tflite.ReadVariableOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ReadVariableOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class AssignVariableOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.ASSIGN_VARIABLE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.AssignVariableOptionsStart(builder) options = tflite.AssignVariableOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.AssignVariableOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class BroadcastArgsOperator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.BROADCAST_ARGS, inputs, outputs) class RandomStandardNormalOperator(BaseOperator): def __init__(self, inputs, outputs, seed=0, seed2=0) -> None: super().__init__(tflite.BuiltinOperator.RANDOM_STANDARD_NORMAL, inputs, outputs) self.seed = seed self.seed2 = seed2 def build(self, builder: flatbuffers.Builder) -> Offset: tflite.RandomOptionsStart(builder) tflite.RandomOptionsAddSeed(builder, self.seed) tflite.RandomOptionsAddSeed2(builder, self.seed2) options = tflite.RandomOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.RandomOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class BucketizeOperator(BaseOperator): def __init__(self, inputs, outputs, boundaries=()) -> None: super().__init__(tflite.BuiltinOperator.BUCKETIZE, inputs, outputs) self.boundaries = boundaries def build(self, builder: flatbuffers.Builder) -> Offset: boundaries = create_numpy_array(builder, tflite.BucketizeOptions.Boundaries, self.boundaries) tflite.BucketizeOptionsStart(builder) tflite.BucketizeOptionsAddBoundaries(builder, boundaries) options = tflite.BucketizeOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.BucketizeOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class RandomUniformOperator(BaseOperator): def __init__(self, inputs, outputs, seed=0, seed2=0) -> None: super().__init__(tflite.BuiltinOperator.RANDOM_UNIFORM, inputs, outputs) self.seed = seed self.seed2 = seed2 def build(self, builder: flatbuffers.Builder) -> Offset: tflite.RandomOptionsStart(builder) tflite.RandomOptionsAddSeed(builder, self.seed) tflite.RandomOptionsAddSeed2(builder, self.seed2) options = tflite.RandomOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.RandomOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class MultinomialOperator(BaseOperator): def __init__(self, inputs, outputs, seed=0, seed2=0) -> None: super().__init__(tflite.BuiltinOperator.MULTINOMIAL, inputs, outputs) self.seed = seed self.seed2 = seed2 def build(self, builder: flatbuffers.Builder) -> Offset: tflite.RandomOptionsStart(builder) tflite.RandomOptionsAddSeed(builder, self.seed) tflite.RandomOptionsAddSeed2(builder, self.seed2) options = tflite.RandomOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.RandomOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class GeluOperator(BaseOperator): def __init__(self, inputs, outputs, approximate=False) -> None: super().__init__(tflite.BuiltinOperator.GELU, inputs, outputs) self.approximate = approximate def build(self, builder: flatbuffers.Builder) -> Offset: tflite.GeluOptionsStart(builder) tflite.GeluOptionsAddApproximate(builder, self.approximate) options = tflite.GeluOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.GeluOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class DynamicUpdateSliceOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.DYNAMIC_UPDATE_SLICE, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.DynamicUpdateSliceOptionsStart(builder) options = tflite.DynamicUpdateSliceOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.DynamicUpdateSliceOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class Relu0To1Operator(BaseOperator): def __init__(self, inputs, outputs) -> None: super().__init__(tflite.BuiltinOperator.RELU_0_TO_1, inputs, outputs) class UnsortedSegmentProdOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.UNSORTED_SEGMENT_PROD, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.UnsortedSegmentProdOptionsStart(builder) options = tflite.UnsortedSegmentProdOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.UnsortedSegmentProdOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class UnsortedSegmentMaxOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.UNSORTED_SEGMENT_MAX, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.UnsortedSegmentMaxOptionsStart(builder) options = tflite.UnsortedSegmentMaxOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.UnsortedSegmentMaxOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class UnsortedSegmentSumOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.UNSORTED_SEGMENT_SUM, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.UnsortedSegmentSumOptionsStart(builder) options = tflite.UnsortedSegmentSumOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.UnsortedSegmentSumOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class Atan2Operator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.ATAN2, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.ATan2OptionsStart(builder) options = tflite.ATan2OptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.ATan2Options) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class UnsortedSegmentMinOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.UNSORTED_SEGMENT_MIN, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.UnsortedSegmentMinOptionsStart(builder) options = tflite.UnsortedSegmentMinOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.UnsortedSegmentMinOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op class SignOperator(BaseOperator): def __init__( self, inputs, outputs, ) -> None: super().__init__(tflite.BuiltinOperator.SIGN, inputs, outputs) def build(self, builder: flatbuffers.Builder) -> Offset: tflite.SignOptionsStart(builder) options = tflite.SignOptionsEnd(builder) tfl_inputs_idx = create_numpy_array(builder, tflite.Operator.Inputs, self.tfl_inputs_idx) tfl_outputs_idx = create_numpy_array(builder, tflite.Operator.Outputs, self.tfl_outputs_idx) tfl_intermediates_idx = create_numpy_array(builder, tflite.Operator.Intermediates, self.tfl_intermediates_idx) tflite.OperatorStart(builder) tflite.OperatorAddOpcodeIndex(builder, self.op.index) tflite.OperatorAddInputs(builder, tfl_inputs_idx) tflite.OperatorAddOutputs(builder, tfl_outputs_idx) tflite.OperatorAddIntermediates(builder, tfl_intermediates_idx) tflite.OperatorAddBuiltinOptionsType(builder, tflite.BuiltinOptions.SignOptions) tflite.OperatorAddBuiltinOptions(builder, options) self.tfl_op = tflite.OperatorEnd(builder) return self.tfl_op