aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorKevin Cheng <kevin.cheng@arm.com>2021-10-15 15:49:19 -0700
committerKevin Cheng <kevin.cheng@arm.com>2021-10-27 10:43:44 -0700
commit38d214cfa4491f1956f28d7eff428a8ed07d824c (patch)
tree871d86c6bc442149159d021724c392a0b9256b51 /python
parente6563f52231c603b409638b22530d016757542c8 (diff)
downloadserialization_lib-38d214cfa4491f1956f28d7eff428a8ed07d824c.tar.gz
Changes for 0.23.0 release
- Remove RELUN op - Add pad_const to PAD op - Make padding as an attribute of PAD op - Make perm as an attribute of TRANSPOSE op - Make table as attribute in Table op - Fix typo in operator.def Signed-off-by: Kevin Cheng <kevin.cheng@arm.com> Change-Id: Ifcaa4ad686578cf814345ede8e7f37f0a04fd8ea
Diffstat (limited to 'python')
-rw-r--r--python/tosa/Attribute.py4
-rw-r--r--python/tosa/Op.py2
-rw-r--r--python/tosa/PadAttribute.py88
-rw-r--r--python/tosa/TableAttribute.py (renamed from python/tosa/ReluNAttribute.py)47
-rw-r--r--python/tosa/TransposeAttribute.py72
-rw-r--r--python/tosa_serializer.py36
6 files changed, 216 insertions, 33 deletions
diff --git a/python/tosa/Attribute.py b/python/tosa/Attribute.py
index 334b4ae..478796f 100644
--- a/python/tosa/Attribute.py
+++ b/python/tosa/Attribute.py
@@ -22,7 +22,7 @@ class Attribute(object):
PoolAttribute = 1
ConvAttribute = 2
TransposeConvAttribute = 3
- ReluNAttribute = 4
+ PadAttribute = 4
AxisAttribute = 5
ReshapeAttribute = 6
SliceAttribute = 7
@@ -34,4 +34,6 @@ class Attribute(object):
ArithmeticRightShiftAttribute = 13
CondIfAttribute = 14
WhileLoopAttribute = 15
+ TransposeAttribute = 16
+ TableAttribute = 17
diff --git a/python/tosa/Op.py b/python/tosa/Op.py
index 0c29224..a3de87d 100644
--- a/python/tosa/Op.py
+++ b/python/tosa/Op.py
@@ -29,7 +29,7 @@ class Op(object):
MAX_POOL2D = 8
TRANSPOSE_CONV2D = 9
CLAMP = 10
- RELUN = 11
+ RESERVED = 11
SIGMOID = 12
TANH = 13
ADD = 14
diff --git a/python/tosa/PadAttribute.py b/python/tosa/PadAttribute.py
new file mode 100644
index 0000000..64dc4c7
--- /dev/null
+++ b/python/tosa/PadAttribute.py
@@ -0,0 +1,88 @@
+# automatically generated by the FlatBuffers compiler, do not modify
+
+# Copyright (c) 2020-2021, ARM Limited.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# namespace: tosa
+
+import flatbuffers
+from flatbuffers.compat import import_numpy
+np = import_numpy()
+
+class PadAttribute(object):
+ __slots__ = ['_tab']
+
+ @classmethod
+ def GetRootAsPadAttribute(cls, buf, offset):
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
+ x = PadAttribute()
+ x.Init(buf, n + offset)
+ return x
+
+ @classmethod
+ def PadAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
+ return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed)
+
+ # PadAttribute
+ def Init(self, buf, pos):
+ self._tab = flatbuffers.table.Table(buf, pos)
+
+ # PadAttribute
+ def Padding(self, j):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
+ 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
+
+ # PadAttribute
+ def PaddingAsNumpy(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
+
+ # PadAttribute
+ def PaddingLength(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
+ if o != 0:
+ return self._tab.VectorLen(o)
+ return 0
+
+ # PadAttribute
+ def PaddingIsNone(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
+ return o == 0
+
+ # PadAttribute
+ def PadConstInt(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
+ if o != 0:
+ return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos)
+ return 0
+
+ # PadAttribute
+ def PadConstFp(self):
+ 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
+
+def PadAttributeStart(builder): builder.StartObject(3)
+def PadAttributeAddPadding(builder, padding): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(padding), 0)
+def PadAttributeStartPaddingVector(builder, numElems): return builder.StartVector(4, numElems, 4)
+def PadAttributeAddPadConstInt(builder, padConstInt): builder.PrependInt32Slot(1, padConstInt, 0)
+def PadAttributeAddPadConstFp(builder, padConstFp): builder.PrependFloat32Slot(2, padConstFp, 0.0)
+def PadAttributeEnd(builder): return builder.EndObject()
diff --git a/python/tosa/ReluNAttribute.py b/python/tosa/TableAttribute.py
index b96d701..8cdbb65 100644
--- a/python/tosa/ReluNAttribute.py
+++ b/python/tosa/TableAttribute.py
@@ -21,39 +21,52 @@ import flatbuffers
from flatbuffers.compat import import_numpy
np = import_numpy()
-class ReluNAttribute(object):
+class TableAttribute(object):
__slots__ = ['_tab']
@classmethod
- def GetRootAsReluNAttribute(cls, buf, offset):
+ def GetRootAsTableAttribute(cls, buf, offset):
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
- x = ReluNAttribute()
+ x = TableAttribute()
x.Init(buf, n + offset)
return x
@classmethod
- def ReluNAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
+ def TableAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed)
- # ReluNAttribute
+ # TableAttribute
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
- # ReluNAttribute
- def MaxInt(self):
+ # TableAttribute
+ def Table(self, j):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
if o != 0:
- return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos)
+ a = self._tab.Vector(o)
+ return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
return 0
- # ReluNAttribute
- def MaxFp(self):
- o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
+ # TableAttribute
+ def TableAsNumpy(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
+
+ # TableAttribute
+ def TableLength(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
if o != 0:
- return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
- return 0.0
+ return self._tab.VectorLen(o)
+ return 0
+
+ # TableAttribute
+ def TableIsNone(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
+ return o == 0
-def ReluNAttributeStart(builder): builder.StartObject(2)
-def ReluNAttributeAddMaxInt(builder, maxInt): builder.PrependInt32Slot(0, maxInt, 0)
-def ReluNAttributeAddMaxFp(builder, maxFp): builder.PrependFloat32Slot(1, maxFp, 0.0)
-def ReluNAttributeEnd(builder): return builder.EndObject()
+def TableAttributeStart(builder): builder.StartObject(1)
+def TableAttributeAddTable(builder, table): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(table), 0)
+def TableAttributeStartTableVector(builder, numElems): return builder.StartVector(4, numElems, 4)
+def TableAttributeEnd(builder): return builder.EndObject()
diff --git a/python/tosa/TransposeAttribute.py b/python/tosa/TransposeAttribute.py
new file mode 100644
index 0000000..399a308
--- /dev/null
+++ b/python/tosa/TransposeAttribute.py
@@ -0,0 +1,72 @@
+# automatically generated by the FlatBuffers compiler, do not modify
+
+# Copyright (c) 2020-2021, ARM Limited.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# namespace: tosa
+
+import flatbuffers
+from flatbuffers.compat import import_numpy
+np = import_numpy()
+
+class TransposeAttribute(object):
+ __slots__ = ['_tab']
+
+ @classmethod
+ def GetRootAsTransposeAttribute(cls, buf, offset):
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
+ x = TransposeAttribute()
+ x.Init(buf, n + offset)
+ return x
+
+ @classmethod
+ def TransposeAttributeBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
+ return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x4F\x53\x41", size_prefixed=size_prefixed)
+
+ # TransposeAttribute
+ def Init(self, buf, pos):
+ self._tab = flatbuffers.table.Table(buf, pos)
+
+ # TransposeAttribute
+ def Perm(self, j):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
+ 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
+
+ # TransposeAttribute
+ def PermAsNumpy(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
+
+ # TransposeAttribute
+ def PermLength(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
+ if o != 0:
+ return self._tab.VectorLen(o)
+ return 0
+
+ # TransposeAttribute
+ def PermIsNone(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
+ return o == 0
+
+def TransposeAttributeStart(builder): builder.StartObject(1)
+def TransposeAttributeAddPerm(builder, perm): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(perm), 0)
+def TransposeAttributeStartPermVector(builder, numElems): return builder.StartVector(4, numElems, 4)
+def TransposeAttributeEnd(builder): return builder.EndObject()
diff --git a/python/tosa_serializer.py b/python/tosa_serializer.py
index d85494d..3d0019e 100644
--- a/python/tosa_serializer.py
+++ b/python/tosa_serializer.py
@@ -170,14 +170,15 @@ class TosaSerializerAttribute(TosaSerializerUnion):
self.intvecs.append((a.TransposeConvAttributeAddDilation, dilation))
self.intvecs.append((a.TransposeConvAttributeAddOutputShape, output_shape))
- def ReluNAttribute(self, maxint, maxfp):
- from tosa import ReluNAttribute as a, Attribute
+ def PadAttribute(self, padding, pad_const_int, pad_const_fp):
+ from tosa import PadAttribute as a, Attribute
- self.utype = Attribute.Attribute().ReluNAttribute
- self.optFcns = (a.ReluNAttributeStart, a.ReluNAttributeEnd)
+ self.utype = Attribute.Attribute().PadAttribute
+ self.optFcns = (a.PadAttributeStart, a.PadAttributeEnd)
- self.ints.append((a.ReluNAttributeAddMaxInt, maxint))
- self.ints.append((a.ReluNAttributeAddMaxFp, maxfp))
+ self.intvecs.append((a.PadAttributeAddPadding, padding))
+ self.ints.append((a.PadAttributeAddPadConstInt, pad_const_int))
+ self.floats.append((a.PadAttributeAddPadConstFp, pad_const_fp))
def AxisAttribute(self, axis):
from tosa import AxisAttribute as a, Attribute
@@ -275,14 +276,6 @@ class TosaSerializerAttribute(TosaSerializerUnion):
self.bools.append((a.ArithmeticRightShiftAttributeAddRound, round))
- def CustomAttribute(self, identifier):
- from tosa import CustomAttribute as a, Attribute
-
- self.utype = Attribute.Attribute().CustomAttribute
- self.optFcns = (a.CustomAttributeStart, a.CustomAttributeEnd)
-
- self.strings.append((a.CustomAttributeAddIdentifier, identifier))
-
def CondIfAttribute(self, then_branch, else_branch):
from tosa import CondIfAttribute as a, Attribute
@@ -301,6 +294,21 @@ class TosaSerializerAttribute(TosaSerializerUnion):
self.strings.append((a.WhileLoopAttributeAddCondBranch, cond_branch))
self.strings.append((a.WhileLoopAttributeAddBodyBranch, body_branch))
+ def TransposeAttribute(self, perm):
+ from tosa import TransposeAttribute as a, Attribute
+
+ self.utype = Attribute.Attribute().TransposeAttribute
+ self.optFcns = (a.TransposeAttributeStart, a.TransposeAttributeEnd)
+
+ self.intvecs.append((a.TransposeAttributeAddPerm, perm))
+
+ def TableAttribute(self, table):
+ from tosa import TableAttribute as a, Attribute
+
+ self.utype = Attribute.Attribute().TableAttribute
+ self.optFcns = (a.TableAttributeStart, a.TableAttributeEnd)
+
+ self.intvecs.append((a.TableAttributeAddTable, table))
class TosaSerializerQuantInfo(TosaSerializerUnion):
"""This class handles encapsulating all of the enumerated types for quantinfo types"""