From c15f7d52aa4f360eba2344449baa418b7608ac7c Mon Sep 17 00:00:00 2001 From: James Ward Date: Wed, 7 Dec 2022 15:38:01 +0000 Subject: Schema changes for CLAMP, PAD float attributes * Float attributes now serialized as uint8 vectors, but treated as floats at input/output to serialization Signed-off-by: James Ward Change-Id: I417b0fabe0ef11fea263fe937b57d49bbfdb00da --- python/tosa/PadAttribute.py | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'python/tosa/PadAttribute.py') diff --git a/python/tosa/PadAttribute.py b/python/tosa/PadAttribute.py index 8d49d5a..23698d1 100644 --- a/python/tosa/PadAttribute.py +++ b/python/tosa/PadAttribute.py @@ -63,11 +63,31 @@ class PadAttribute(object): return 0 # PadAttribute - def PadConstFp(self): + def PadConstFp(self, j): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: - return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) - return 0.0 + a = self._tab.Vector(o) + return self._tab.Get(flatbuffers.number_types.Uint8Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 1)) + return 0 + + # PadAttribute + def PadConstFpAsNumpy(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Uint8Flags, o) + return 0 + + # PadAttribute + def PadConstFpLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # PadAttribute + def PadConstFpIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + return o == 0 def PadAttributeStart(builder): builder.StartObject(3) def Start(builder): @@ -81,9 +101,12 @@ def StartPaddingVector(builder, numElems): def PadAttributeAddPadConstInt(builder, padConstInt): builder.PrependInt32Slot(1, padConstInt, 0) def AddPadConstInt(builder, padConstInt): return PadAttributeAddPadConstInt(builder, padConstInt) -def PadAttributeAddPadConstFp(builder, padConstFp): builder.PrependFloat32Slot(2, padConstFp, 0.0) +def PadAttributeAddPadConstFp(builder, padConstFp): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(padConstFp), 0) def AddPadConstFp(builder, padConstFp): return PadAttributeAddPadConstFp(builder, padConstFp) +def PadAttributeStartPadConstFpVector(builder, numElems): return builder.StartVector(1, numElems, 1) +def StartPadConstFpVector(builder, numElems): + return PadAttributeStartPadConstFpVector(builder, numElems) def PadAttributeEnd(builder): return builder.EndObject() def End(builder): return PadAttributeEnd(builder) \ No newline at end of file -- cgit v1.2.1