diff options
Diffstat (limited to 'python')
-rw-r--r-- | python/serializer/tosa_serializer.py | 58 | ||||
-rw-r--r-- | python/tosa/ClampAttribute.py | 19 | ||||
-rw-r--r-- | python/tosa/ConvAttribute.py | 6 | ||||
-rw-r--r-- | python/tosa/CustomAttribute.py | 2 | ||||
-rw-r--r-- | python/tosa/PadAttribute.py | 17 | ||||
-rw-r--r-- | python/tosa/PoolAttribute.py | 6 | ||||
-rw-r--r-- | python/tosa/ResizeAttribute.py | 6 | ||||
-rw-r--r-- | python/tosa/TableAttribute.py | 2 | ||||
-rw-r--r-- | python/tosa/TosaBasicBlock.py | 8 | ||||
-rw-r--r-- | python/tosa/TosaGraph.py | 2 | ||||
-rw-r--r-- | python/tosa/TosaOperator.py | 4 | ||||
-rw-r--r-- | python/tosa/TosaRegion.py | 2 | ||||
-rw-r--r-- | python/tosa/TosaTensor.py | 4 | ||||
-rw-r--r-- | python/tosa/TransposeAttribute.py | 2 | ||||
-rw-r--r-- | python/tosa/TransposeConvAttribute.py | 61 |
15 files changed, 57 insertions, 142 deletions
diff --git a/python/serializer/tosa_serializer.py b/python/serializer/tosa_serializer.py index 298907e..34178c5 100644 --- a/python/serializer/tosa_serializer.py +++ b/python/serializer/tosa_serializer.py @@ -17,7 +17,7 @@ import serializer.tosa_serializer as ts import json import flatbuffers import numpy as np -import struct +from ml_dtypes import bfloat16, float8_e4m3fn, float8_e5m2 from enum import IntEnum, unique from tosa import ( TosaGraph, @@ -31,8 +31,8 @@ import tosa.DType as TosaDType import tosa.Op as TosaOp # Keep version number in sync with the version default value with schema/tosa.fbs -TOSA_VERSION_MAJOR = 0 -TOSA_VERSION_MINOR = 100 +TOSA_VERSION_MAJOR = 1 +TOSA_VERSION_MINOR = 1 TOSA_VERSION_PATCH = 0 TOSA_VERSION_DRAFT = True TOSA_VERSION = [ @@ -190,7 +190,7 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.ints.append((a.AddAccType, acc_type)) def TransposeConvAttribute( - self, outpad, stride, output_shape, input_zp, weight_zp, local_bound, acc_type + self, outpad, stride, input_zp, weight_zp, local_bound, acc_type ): from tosa import TransposeConvAttribute as a, Attribute @@ -199,13 +199,12 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.intvecs.append((a.AddOutPad, outpad)) self.intvecs.append((a.AddStride, stride)) - self.intvecs.append((a.AddOutputShape, output_shape)) self.ints.append((a.AddInputZp, input_zp)) self.ints.append((a.AddWeightZp, weight_zp)) self.bools.append((a.AddLocalBound, local_bound)) self.ints.append((a.AddAccType, acc_type)) - def PadAttribute(self, serializer_builder, pad_const_val_as_bytes, dtype): + def PadAttribute(self, serializer_builder, pad_const_val_as_bytes): from tosa import PadAttribute as a, Attribute self.utype = Attribute.Attribute().PadAttribute @@ -217,7 +216,6 @@ class TosaSerializerAttribute(TosaSerializerUnion): ) self.floats.append((a.AddPadConst, serialized_pad_const_val)) - self.ints.append((a.AddType, dtype)) def AxisAttribute(self, axis): from tosa import AxisAttribute as a, Attribute @@ -238,9 +236,7 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.int16vecs.append((a.AddBorder, border)) self.ints.append((a.AddMode, mode)) - def ClampAttribute( - self, serializer_builder, min_val_as_bytes, max_val_as_bytes, dtype - ): + def ClampAttribute(self, serializer_builder, min_val_as_bytes, max_val_as_bytes): from tosa import ClampAttribute as a, Attribute self.utype = Attribute.Attribute().ClampAttribute @@ -256,7 +252,6 @@ class TosaSerializerAttribute(TosaSerializerUnion): self.floats.append((a.AddMinVal, serialized_min_val)) self.floats.append((a.AddMaxVal, serialized_max_val)) - self.ints.append((a.AddType, dtype)) def RescaleAttribute( self, @@ -397,13 +392,14 @@ class TosaSerializerTensor: self.shape = shape self.dtype = dtype - if ( - dtype == DType.FP32 - or dtype == DType.BF16 - or dtype == DType.FP8E4M3 - or dtype == DType.FP8E5M2 - ): + if dtype == DType.FP32: fntype = np.float32 + elif dtype == DType.BF16: + fntype = bfloat16 + elif dtype == DType.FP8E4M3: + fntype = float8_e4m3fn + elif dtype == DType.FP8E5M2: + fntype = float8_e5m2 elif dtype == DType.FP16: fntype = np.float16 else: @@ -948,35 +944,19 @@ class TosaSerializer: np_arr = np.array(data, dtype=np.float16) u8_data.extend(np_arr.view(np.uint8)) elif dtype == DType.FP32: - # for val in data: - # b = struct.pack("!f", val) - # u8_data.extend([b[3], b[2], b[1], b[0]]) np_arr = np.array(data, dtype=np.float32) u8_data.extend(np_arr.view(np.uint8)) elif dtype == DType.BF16: - for val in data: - # convert val to little endian byte arrays b - b = struct.pack("<f", val) - # val => [ b[3], b[2], b[1], b[0] ] - # keep only most significant 2 bytes for bf16 - # in little endian ordering - u8_data.extend([b[2], b[3]]) + np_arr = np.array(data, dtype=bfloat16) + u8_data.extend(np_arr.view(np.uint8)) elif dtype == DType.FP8E4M3: for val in data: - # convert val to fp8_bits then to single byte - f32_as_int = struct.unpack(">L", struct.pack(">f", val))[0] - f32_bits = f"{f32_as_int:032b}" - fp8_bits = f32_bits[0] + f32_bits[1:5] + f32_bits[9:12] - fp8_bytes = int(fp8_bits, 2).to_bytes(1, byteorder="little") - u8_data.extend(fp8_bytes) + val_f8 = np.array(val).astype(float8_e4m3fn).view(np.uint8) + u8_data.append(val_f8) elif dtype == DType.FP8E5M2: for val in data: - # convert val to fp8_bits then to single byte - f32_as_int = struct.unpack(">L", struct.pack(">f", val))[0] - f32_bits = f"{f32_as_int:032b}" - fp8_bits = f32_bits[0] + f32_bits[1:6] + f32_bits[9:11] - fp8_bytes = int(fp8_bits, 2).to_bytes(1, byteorder="little") - u8_data.extend(fp8_bytes) + val_f8 = np.array(val).astype(float8_e5m2).view(np.uint8) + u8_data.append(val_f8) elif dtype == TosaDType.DType: # Serialize DType enum data as uint8 bytes for val in data: diff --git a/python/tosa/ClampAttribute.py b/python/tosa/ClampAttribute.py index 1189acb..40254ec 100644 --- a/python/tosa/ClampAttribute.py +++ b/python/tosa/ClampAttribute.py @@ -82,15 +82,8 @@ class ClampAttribute(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) return o == 0 - # ClampAttribute - def Type(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos) - return 0 - def ClampAttributeStart(builder): - builder.StartObject(3) + builder.StartObject(2) def Start(builder): ClampAttributeStart(builder) @@ -104,7 +97,7 @@ def AddMinVal(builder, minVal): def ClampAttributeStartMinValVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartMinValVector(builder, numElems: int) -> int: +def StartMinValVector(builder, numElems): return ClampAttributeStartMinValVector(builder, numElems) def ClampAttributeAddMaxVal(builder, maxVal): @@ -116,15 +109,9 @@ def AddMaxVal(builder, maxVal): def ClampAttributeStartMaxValVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartMaxValVector(builder, numElems: int) -> int: +def StartMaxValVector(builder, numElems): return ClampAttributeStartMaxValVector(builder, numElems) -def ClampAttributeAddType(builder, type): - builder.PrependUint32Slot(2, type, 0) - -def AddType(builder, type): - ClampAttributeAddType(builder, type) - def ClampAttributeEnd(builder): return builder.EndObject() diff --git a/python/tosa/ConvAttribute.py b/python/tosa/ConvAttribute.py index dfa75dc..1deca59 100644 --- a/python/tosa/ConvAttribute.py +++ b/python/tosa/ConvAttribute.py @@ -152,7 +152,7 @@ def AddPad(builder, pad): def ConvAttributeStartPadVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartPadVector(builder, numElems: int) -> int: +def StartPadVector(builder, numElems): return ConvAttributeStartPadVector(builder, numElems) def ConvAttributeAddStride(builder, stride): @@ -164,7 +164,7 @@ def AddStride(builder, stride): def ConvAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartStrideVector(builder, numElems: int) -> int: +def StartStrideVector(builder, numElems): return ConvAttributeStartStrideVector(builder, numElems) def ConvAttributeAddDilation(builder, dilation): @@ -176,7 +176,7 @@ def AddDilation(builder, dilation): def ConvAttributeStartDilationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartDilationVector(builder, numElems: int) -> int: +def StartDilationVector(builder, numElems): return ConvAttributeStartDilationVector(builder, numElems) def ConvAttributeAddInputZp(builder, inputZp): diff --git a/python/tosa/CustomAttribute.py b/python/tosa/CustomAttribute.py index db35dca..4c1c477 100644 --- a/python/tosa/CustomAttribute.py +++ b/python/tosa/CustomAttribute.py @@ -96,7 +96,7 @@ def AddImplementationAttrs(builder, implementationAttrs): def CustomAttributeStartImplementationAttrsVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartImplementationAttrsVector(builder, numElems: int) -> int: +def StartImplementationAttrsVector(builder, numElems): return CustomAttributeStartImplementationAttrsVector(builder, numElems) def CustomAttributeEnd(builder): diff --git a/python/tosa/PadAttribute.py b/python/tosa/PadAttribute.py index c4084dc..8adf9f7 100644 --- a/python/tosa/PadAttribute.py +++ b/python/tosa/PadAttribute.py @@ -55,15 +55,8 @@ class PadAttribute(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) return o == 0 - # PadAttribute - def Type(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) - if o != 0: - return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos) - return 0 - def PadAttributeStart(builder): - builder.StartObject(2) + builder.StartObject(1) def Start(builder): PadAttributeStart(builder) @@ -77,15 +70,9 @@ def AddPadConst(builder, padConst): def PadAttributeStartPadConstVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartPadConstVector(builder, numElems: int) -> int: +def StartPadConstVector(builder, numElems): return PadAttributeStartPadConstVector(builder, numElems) -def PadAttributeAddType(builder, type): - builder.PrependUint32Slot(1, type, 0) - -def AddType(builder, type): - PadAttributeAddType(builder, type) - def PadAttributeEnd(builder): return builder.EndObject() diff --git a/python/tosa/PoolAttribute.py b/python/tosa/PoolAttribute.py index c13e038..831d43b 100644 --- a/python/tosa/PoolAttribute.py +++ b/python/tosa/PoolAttribute.py @@ -145,7 +145,7 @@ def AddPad(builder, pad): def PoolAttributeStartPadVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartPadVector(builder, numElems: int) -> int: +def StartPadVector(builder, numElems): return PoolAttributeStartPadVector(builder, numElems) def PoolAttributeAddKernel(builder, kernel): @@ -157,7 +157,7 @@ def AddKernel(builder, kernel): def PoolAttributeStartKernelVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartKernelVector(builder, numElems: int) -> int: +def StartKernelVector(builder, numElems): return PoolAttributeStartKernelVector(builder, numElems) def PoolAttributeAddStride(builder, stride): @@ -169,7 +169,7 @@ def AddStride(builder, stride): def PoolAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartStrideVector(builder, numElems: int) -> int: +def StartStrideVector(builder, numElems): return PoolAttributeStartStrideVector(builder, numElems) def PoolAttributeAddInputZp(builder, inputZp): diff --git a/python/tosa/ResizeAttribute.py b/python/tosa/ResizeAttribute.py index 96bfa56..44f7d31 100644 --- a/python/tosa/ResizeAttribute.py +++ b/python/tosa/ResizeAttribute.py @@ -131,7 +131,7 @@ def AddScale(builder, scale): def ResizeAttributeStartScaleVector(builder, numElems): return builder.StartVector(2, numElems, 2) -def StartScaleVector(builder, numElems: int) -> int: +def StartScaleVector(builder, numElems): return ResizeAttributeStartScaleVector(builder, numElems) def ResizeAttributeAddOffset(builder, offset): @@ -143,7 +143,7 @@ def AddOffset(builder, offset): def ResizeAttributeStartOffsetVector(builder, numElems): return builder.StartVector(2, numElems, 2) -def StartOffsetVector(builder, numElems: int) -> int: +def StartOffsetVector(builder, numElems): return ResizeAttributeStartOffsetVector(builder, numElems) def ResizeAttributeAddBorder(builder, border): @@ -155,7 +155,7 @@ def AddBorder(builder, border): def ResizeAttributeStartBorderVector(builder, numElems): return builder.StartVector(2, numElems, 2) -def StartBorderVector(builder, numElems: int) -> int: +def StartBorderVector(builder, numElems): return ResizeAttributeStartBorderVector(builder, numElems) def ResizeAttributeAddMode(builder, mode): diff --git a/python/tosa/TableAttribute.py b/python/tosa/TableAttribute.py index 6caa1f2..04193fa 100644 --- a/python/tosa/TableAttribute.py +++ b/python/tosa/TableAttribute.py @@ -70,7 +70,7 @@ def AddTable(builder, table): def TableAttributeStartTableVector(builder, numElems): return builder.StartVector(2, numElems, 2) -def StartTableVector(builder, numElems: int) -> int: +def StartTableVector(builder, numElems): return TableAttributeStartTableVector(builder, numElems) def TableAttributeEnd(builder): diff --git a/python/tosa/TosaBasicBlock.py b/python/tosa/TosaBasicBlock.py index b31f455..30ad0ee 100644 --- a/python/tosa/TosaBasicBlock.py +++ b/python/tosa/TosaBasicBlock.py @@ -146,7 +146,7 @@ def AddOperators(builder, operators): def TosaBasicBlockStartOperatorsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartOperatorsVector(builder, numElems: int) -> int: +def StartOperatorsVector(builder, numElems): return TosaBasicBlockStartOperatorsVector(builder, numElems) def TosaBasicBlockAddTensors(builder, tensors): @@ -158,7 +158,7 @@ def AddTensors(builder, tensors): def TosaBasicBlockStartTensorsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartTensorsVector(builder, numElems: int) -> int: +def StartTensorsVector(builder, numElems): return TosaBasicBlockStartTensorsVector(builder, numElems) def TosaBasicBlockAddInputs(builder, inputs): @@ -170,7 +170,7 @@ def AddInputs(builder, inputs): def TosaBasicBlockStartInputsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartInputsVector(builder, numElems: int) -> int: +def StartInputsVector(builder, numElems): return TosaBasicBlockStartInputsVector(builder, numElems) def TosaBasicBlockAddOutputs(builder, outputs): @@ -182,7 +182,7 @@ def AddOutputs(builder, outputs): def TosaBasicBlockStartOutputsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartOutputsVector(builder, numElems: int) -> int: +def StartOutputsVector(builder, numElems): return TosaBasicBlockStartOutputsVector(builder, numElems) def TosaBasicBlockEnd(builder): diff --git a/python/tosa/TosaGraph.py b/python/tosa/TosaGraph.py index 84b51a7..520372b 100644 --- a/python/tosa/TosaGraph.py +++ b/python/tosa/TosaGraph.py @@ -85,7 +85,7 @@ def AddRegions(builder, regions): def TosaGraphStartRegionsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartRegionsVector(builder, numElems: int) -> int: +def StartRegionsVector(builder, numElems): return TosaGraphStartRegionsVector(builder, numElems) def TosaGraphEnd(builder): diff --git a/python/tosa/TosaOperator.py b/python/tosa/TosaOperator.py index 2b889ad..19f2d2c 100644 --- a/python/tosa/TosaOperator.py +++ b/python/tosa/TosaOperator.py @@ -125,7 +125,7 @@ def AddInputs(builder, inputs): def TosaOperatorStartInputsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartInputsVector(builder, numElems: int) -> int: +def StartInputsVector(builder, numElems): return TosaOperatorStartInputsVector(builder, numElems) def TosaOperatorAddOutputs(builder, outputs): @@ -137,7 +137,7 @@ def AddOutputs(builder, outputs): def TosaOperatorStartOutputsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartOutputsVector(builder, numElems: int) -> int: +def StartOutputsVector(builder, numElems): return TosaOperatorStartOutputsVector(builder, numElems) def TosaOperatorEnd(builder): diff --git a/python/tosa/TosaRegion.py b/python/tosa/TosaRegion.py index 7fd6e3c..80829da 100644 --- a/python/tosa/TosaRegion.py +++ b/python/tosa/TosaRegion.py @@ -81,7 +81,7 @@ def AddBlocks(builder, blocks): def TosaRegionStartBlocksVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartBlocksVector(builder, numElems: int) -> int: +def StartBlocksVector(builder, numElems): return TosaRegionStartBlocksVector(builder, numElems) def TosaRegionEnd(builder): diff --git a/python/tosa/TosaTensor.py b/python/tosa/TosaTensor.py index 3fb9f86..1311aac 100644 --- a/python/tosa/TosaTensor.py +++ b/python/tosa/TosaTensor.py @@ -138,7 +138,7 @@ def AddShape(builder, shape): def TosaTensorStartShapeVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartShapeVector(builder, numElems: int) -> int: +def StartShapeVector(builder, numElems): return TosaTensorStartShapeVector(builder, numElems) def TosaTensorAddType(builder, type): @@ -156,7 +156,7 @@ def AddData(builder, data): def TosaTensorStartDataVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartDataVector(builder, numElems: int) -> int: +def StartDataVector(builder, numElems): return TosaTensorStartDataVector(builder, numElems) def TosaTensorAddVariable(builder, variable): diff --git a/python/tosa/TransposeAttribute.py b/python/tosa/TransposeAttribute.py index 71cfdf0..5aa23e2 100644 --- a/python/tosa/TransposeAttribute.py +++ b/python/tosa/TransposeAttribute.py @@ -70,7 +70,7 @@ def AddPerms(builder, perms): def TransposeAttributeStartPermsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartPermsVector(builder, numElems: int) -> int: +def StartPermsVector(builder, numElems): return TransposeAttributeStartPermsVector(builder, numElems) def TransposeAttributeEnd(builder): diff --git a/python/tosa/TransposeConvAttribute.py b/python/tosa/TransposeConvAttribute.py index e5397a8..2f7cdc7 100644 --- a/python/tosa/TransposeConvAttribute.py +++ b/python/tosa/TransposeConvAttribute.py @@ -83,62 +83,35 @@ class TransposeConvAttribute(object): return o == 0 # TransposeConvAttribute - def OutputShape(self, j): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - a = self._tab.Vector(o) - return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)) - return 0 - - # TransposeConvAttribute - def OutputShapeAsNumpy(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) - return 0 - - # TransposeConvAttribute - def OutputShapeLength(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - if o != 0: - return self._tab.VectorLen(o) - return 0 - - # TransposeConvAttribute - def OutputShapeIsNone(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) - return o == 0 - - # TransposeConvAttribute def InputZp(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 # TransposeConvAttribute def WeightZp(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 0 # TransposeConvAttribute def LocalBound(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) if o != 0: return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) return False # TransposeConvAttribute def AccType(self): - o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16)) + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) if o != 0: return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos) return 0 def TransposeConvAttributeStart(builder): - builder.StartObject(7) + builder.StartObject(6) def Start(builder): TransposeConvAttributeStart(builder) @@ -152,7 +125,7 @@ def AddOutPad(builder, outPad): def TransposeConvAttributeStartOutPadVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartOutPadVector(builder, numElems: int) -> int: +def StartOutPadVector(builder, numElems): return TransposeConvAttributeStartOutPadVector(builder, numElems) def TransposeConvAttributeAddStride(builder, stride): @@ -164,41 +137,29 @@ def AddStride(builder, stride): def TransposeConvAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartStrideVector(builder, numElems: int) -> int: +def StartStrideVector(builder, numElems): return TransposeConvAttributeStartStrideVector(builder, numElems) -def TransposeConvAttributeAddOutputShape(builder, outputShape): - builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(outputShape), 0) - -def AddOutputShape(builder, outputShape): - TransposeConvAttributeAddOutputShape(builder, outputShape) - -def TransposeConvAttributeStartOutputShapeVector(builder, numElems): - return builder.StartVector(4, numElems, 4) - -def StartOutputShapeVector(builder, numElems: int) -> int: - return TransposeConvAttributeStartOutputShapeVector(builder, numElems) - def TransposeConvAttributeAddInputZp(builder, inputZp): - builder.PrependInt32Slot(3, inputZp, 0) + builder.PrependInt32Slot(2, inputZp, 0) def AddInputZp(builder, inputZp): TransposeConvAttributeAddInputZp(builder, inputZp) def TransposeConvAttributeAddWeightZp(builder, weightZp): - builder.PrependInt32Slot(4, weightZp, 0) + builder.PrependInt32Slot(3, weightZp, 0) def AddWeightZp(builder, weightZp): TransposeConvAttributeAddWeightZp(builder, weightZp) def TransposeConvAttributeAddLocalBound(builder, localBound): - builder.PrependBoolSlot(5, localBound, 0) + builder.PrependBoolSlot(4, localBound, 0) def AddLocalBound(builder, localBound): TransposeConvAttributeAddLocalBound(builder, localBound) def TransposeConvAttributeAddAccType(builder, accType): - builder.PrependUint32Slot(6, accType, 0) + builder.PrependUint32Slot(5, accType, 0) def AddAccType(builder, accType): TransposeConvAttributeAddAccType(builder, accType) |