diff options
author | Rob Elliott <robert.elliott@arm.com> | 2023-08-17 14:27:06 +0000 |
---|---|---|
committer | Rickard Bolin <rickard.bolin@arm.com> | 2023-08-21 16:14:51 +0000 |
commit | 00a15db3e1a188b25065d095152d701f4394cdc5 (patch) | |
tree | 96761b9f7ac3ad759f9f0ffbf63a6d0ef115ad14 /ethosu/vela/tosa/ConvAttribute.py | |
parent | 8ea90edb75e5d2353aa91c264356fc9d460ca308 (diff) | |
download | ethos-u-vela-00a15db3e1a188b25065d095152d701f4394cdc5.tar.gz |
Moving Vela to use TOSA v0.80.0 specification
* Using serialization_lib main branch to update statically copied
files sha 5f920211ac23393a7b98a0d358bfbfc3232d5c8f (v0.80.0)
* All files within the ethosu/vela/tosa are copied from that revision
* Note: hope to move to serialization_lib as a pip module in future
* Modified the ethosu/vela/{tosa_mapping,tosa_reader}.py to use
v0.80.0 TOSA FlatBuffers implementation
* These are the additional changes made to support this new version,
with changes in the format of the FlatBuffers file and where various
values are stored. Either changing from input to attribute, or
moving to different attributes.
Signed-off-by: Rob Elliott <robert.elliott@arm.com>
Change-Id: I5e1fcc2a9964148619be3477adf1e88e84cbae2d
Diffstat (limited to 'ethosu/vela/tosa/ConvAttribute.py')
-rw-r--r-- | ethosu/vela/tosa/ConvAttribute.py | 114 |
1 files changed, 102 insertions, 12 deletions
diff --git a/ethosu/vela/tosa/ConvAttribute.py b/ethosu/vela/tosa/ConvAttribute.py index d67ae5ff..6db82d77 100644 --- a/ethosu/vela/tosa/ConvAttribute.py +++ b/ethosu/vela/tosa/ConvAttribute.py @@ -3,23 +3,33 @@ # namespace: tosa import flatbuffers +from flatbuffers.compat import import_numpy +np = import_numpy() class ConvAttribute(object): __slots__ = ['_tab'] @classmethod - def GetRootAsConvAttribute(cls, buf, offset): + def GetRootAs(cls, buf, offset=0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = ConvAttribute() x.Init(buf, n + offset) return x + @classmethod + def GetRootAsConvAttribute(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + @classmethod + def ConvAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False): + return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed) + # ConvAttribute def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) # ConvAttribute - def Padding(self, j): + def Pad(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: a = self._tab.Vector(o) @@ -27,20 +37,25 @@ class ConvAttribute(object): return 0 # ConvAttribute - def PaddingAsNumpy(self): + def PadAsNumpy(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o) return 0 # ConvAttribute - def PaddingLength(self): + def PadLength(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.VectorLen(o) return 0 # ConvAttribute + def PadIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + return o == 0 + + # ConvAttribute def Stride(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: @@ -63,6 +78,11 @@ class ConvAttribute(object): return 0 # ConvAttribute + def StrideIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + return o == 0 + + # ConvAttribute def Dilation(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: @@ -84,11 +104,81 @@ class ConvAttribute(object): return self._tab.VectorLen(o) return 0 -def ConvAttributeStart(builder): builder.StartObject(3) -def ConvAttributeAddPadding(builder, padding): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(padding), 0) -def ConvAttributeStartPaddingVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ConvAttributeAddStride(builder, stride): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) -def ConvAttributeStartStrideVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ConvAttributeAddDilation(builder, dilation): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(dilation), 0) -def ConvAttributeStartDilationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def ConvAttributeEnd(builder): return builder.EndObject() + # ConvAttribute + def DilationIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + return o == 0 + + # ConvAttribute + def InputZp(self): + 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 + + # ConvAttribute + def WeightZp(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) + return 0 + +def ConvAttributeStart(builder): + builder.StartObject(5) + +def Start(builder): + ConvAttributeStart(builder) + +def ConvAttributeAddPad(builder, pad): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pad), 0) + +def AddPad(builder, pad): + ConvAttributeAddPad(builder, pad) + +def ConvAttributeStartPadVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartPadVector(builder, numElems: int) -> int: + return ConvAttributeStartPadVector(builder, numElems) + +def ConvAttributeAddStride(builder, stride): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(stride), 0) + +def AddStride(builder, stride): + ConvAttributeAddStride(builder, stride) + +def ConvAttributeStartStrideVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartStrideVector(builder, numElems: int) -> int: + return ConvAttributeStartStrideVector(builder, numElems) + +def ConvAttributeAddDilation(builder, dilation): + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(dilation), 0) + +def AddDilation(builder, dilation): + ConvAttributeAddDilation(builder, dilation) + +def ConvAttributeStartDilationVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartDilationVector(builder, numElems: int) -> int: + return ConvAttributeStartDilationVector(builder, numElems) + +def ConvAttributeAddInputZp(builder, inputZp): + builder.PrependInt32Slot(3, inputZp, 0) + +def AddInputZp(builder, inputZp): + ConvAttributeAddInputZp(builder, inputZp) + +def ConvAttributeAddWeightZp(builder, weightZp): + builder.PrependInt32Slot(4, weightZp, 0) + +def AddWeightZp(builder, weightZp): + ConvAttributeAddWeightZp(builder, weightZp) + +def ConvAttributeEnd(builder): + return builder.EndObject() + +def End(builder): + return ConvAttributeEnd(builder) |