diff options
author | Tim Hall <tim.hall@arm.com> | 2021-02-04 21:31:57 +0000 |
---|---|---|
committer | Tim Hall <tim.hall@arm.com> | 2021-02-05 11:54:48 +0000 |
commit | 42abec185a95ac8d5f2b32d541f587b3cd306e75 (patch) | |
tree | 7c17eb47cb89a37b9f9d82add61385a5a82c40fe /ethosu/vela/tflite | |
parent | 73e843f76dd71e4ab5e07a7616c2c4806ca6ac25 (diff) | |
download | ethos-u-vela-42abec185a95ac8d5f2b32d541f587b3cd306e75.tar.gz |
MLBEDSW-3771: Updated to TF 2.4 flatbuffer schema
Updated tflite loader and mappings from tensorflow 2.3 to tensorflow 2.4
Signed-off-by: Tim Hall <tim.hall@arm.com>
Change-Id: I55884000ee139baf639bb0377008e0534f72fe94
Diffstat (limited to 'ethosu/vela/tflite')
-rw-r--r-- | ethosu/vela/tflite/BuiltinOperator.py | 2 | ||||
-rw-r--r-- | ethosu/vela/tflite/BuiltinOptions.py | 1 | ||||
-rw-r--r-- | ethosu/vela/tflite/CumsumOptions.py | 38 | ||||
-rw-r--r-- | ethosu/vela/tflite/Model.py | 24 | ||||
-rw-r--r-- | ethosu/vela/tflite/OperatorCode.py | 14 | ||||
-rw-r--r-- | ethosu/vela/tflite/SignatureDef.py | 82 | ||||
-rw-r--r-- | ethosu/vela/tflite/TensorMap.py | 38 |
7 files changed, 195 insertions, 4 deletions
diff --git a/ethosu/vela/tflite/BuiltinOperator.py b/ethosu/vela/tflite/BuiltinOperator.py index fb23155c..73fed9b6 100644 --- a/ethosu/vela/tflite/BuiltinOperator.py +++ b/ethosu/vela/tflite/BuiltinOperator.py @@ -130,4 +130,6 @@ class BuiltinOperator(object): DENSIFY = 124 SEGMENT_SUM = 125 BATCH_MATMUL = 126 + PLACEHOLDER_FOR_GREATER_OP_CODES = 127 + CUMSUM = 128 diff --git a/ethosu/vela/tflite/BuiltinOptions.py b/ethosu/vela/tflite/BuiltinOptions.py index 6f0aab0a..6be2d43a 100644 --- a/ethosu/vela/tflite/BuiltinOptions.py +++ b/ethosu/vela/tflite/BuiltinOptions.py @@ -105,4 +105,5 @@ class BuiltinOptions(object): DensifyOptions = 99 SegmentSumOptions = 100 BatchMatMulOptions = 101 + CumsumOptions = 102 diff --git a/ethosu/vela/tflite/CumsumOptions.py b/ethosu/vela/tflite/CumsumOptions.py new file mode 100644 index 00000000..33e086ef --- /dev/null +++ b/ethosu/vela/tflite/CumsumOptions.py @@ -0,0 +1,38 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tflite + +import flatbuffers + +class CumsumOptions(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAsCumsumOptions(cls, buf, offset): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = CumsumOptions() + x.Init(buf, n + offset) + return x + + # CumsumOptions + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # CumsumOptions + def Exclusive(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False + + # CumsumOptions + def Reverse(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)) + return False + +def CumsumOptionsStart(builder): builder.StartObject(2) +def CumsumOptionsAddExclusive(builder, exclusive): builder.PrependBoolSlot(0, exclusive, 0) +def CumsumOptionsAddReverse(builder, reverse): builder.PrependBoolSlot(1, reverse, 0) +def CumsumOptionsEnd(builder): return builder.EndObject() diff --git a/ethosu/vela/tflite/Model.py b/ethosu/vela/tflite/Model.py index cc9991ba..52aac021 100644 --- a/ethosu/vela/tflite/Model.py +++ b/ethosu/vela/tflite/Model.py @@ -134,7 +134,27 @@ class Model(object): return self._tab.VectorLen(o) return 0 -def ModelStart(builder): builder.StartObject(7) + # Model + def SignatureDefs(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18)) + if o != 0: + x = self._tab.Vector(o) + x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 + x = self._tab.Indirect(x) + from .SignatureDef import SignatureDef + obj = SignatureDef() + obj.Init(self._tab.Bytes, x) + return obj + return None + + # Model + def SignatureDefsLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + +def ModelStart(builder): builder.StartObject(8) def ModelAddVersion(builder, version): builder.PrependUint32Slot(0, version, 0) def ModelAddOperatorCodes(builder, operatorCodes): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(operatorCodes), 0) def ModelStartOperatorCodesVector(builder, numElems): return builder.StartVector(4, numElems, 4) @@ -147,4 +167,6 @@ def ModelAddMetadataBuffer(builder, metadataBuffer): builder.PrependUOffsetTRela def ModelStartMetadataBufferVector(builder, numElems): return builder.StartVector(4, numElems, 4) def ModelAddMetadata(builder, metadata): builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(metadata), 0) def ModelStartMetadataVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def ModelAddSignatureDefs(builder, signatureDefs): builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(signatureDefs), 0) +def ModelStartSignatureDefsVector(builder, numElems): return builder.StartVector(4, numElems, 4) def ModelEnd(builder): return builder.EndObject() diff --git a/ethosu/vela/tflite/OperatorCode.py b/ethosu/vela/tflite/OperatorCode.py index dd525f53..5a0ba2a4 100644 --- a/ethosu/vela/tflite/OperatorCode.py +++ b/ethosu/vela/tflite/OperatorCode.py @@ -19,7 +19,7 @@ class OperatorCode(object): self._tab = flatbuffers.table.Table(buf, pos) # OperatorCode - def BuiltinCode(self): + def DeprecatedBuiltinCode(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int8Flags, o + self._tab.Pos) @@ -39,8 +39,16 @@ class OperatorCode(object): return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) return 1 -def OperatorCodeStart(builder): builder.StartObject(3) -def OperatorCodeAddBuiltinCode(builder, builtinCode): builder.PrependInt8Slot(0, builtinCode, 0) + # OperatorCode + def BuiltinCode(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 + +def OperatorCodeStart(builder): builder.StartObject(4) +def OperatorCodeAddDeprecatedBuiltinCode(builder, deprecatedBuiltinCode): builder.PrependInt8Slot(0, deprecatedBuiltinCode, 0) def OperatorCodeAddCustomCode(builder, customCode): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(customCode), 0) def OperatorCodeAddVersion(builder, version): builder.PrependInt32Slot(2, version, 1) +def OperatorCodeAddBuiltinCode(builder, builtinCode): builder.PrependInt32Slot(3, builtinCode, 0) def OperatorCodeEnd(builder): return builder.EndObject() diff --git a/ethosu/vela/tflite/SignatureDef.py b/ethosu/vela/tflite/SignatureDef.py new file mode 100644 index 00000000..149f8fc6 --- /dev/null +++ b/ethosu/vela/tflite/SignatureDef.py @@ -0,0 +1,82 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tflite + +import flatbuffers + +class SignatureDef(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAsSignatureDef(cls, buf, offset): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = SignatureDef() + x.Init(buf, n + offset) + return x + + # SignatureDef + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # SignatureDef + def Inputs(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + x = self._tab.Vector(o) + x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 + x = self._tab.Indirect(x) + from .TensorMap import TensorMap + obj = TensorMap() + obj.Init(self._tab.Bytes, x) + return obj + return None + + # SignatureDef + def InputsLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # SignatureDef + def Outputs(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + x = self._tab.Vector(o) + x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 + x = self._tab.Indirect(x) + from .TensorMap import TensorMap + obj = TensorMap() + obj.Init(self._tab.Bytes, x) + return obj + return None + + # SignatureDef + def OutputsLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # SignatureDef + def MethodName(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) + if o != 0: + return self._tab.String(o + self._tab.Pos) + return None + + # SignatureDef + def Key(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) + if o != 0: + return self._tab.String(o + self._tab.Pos) + return None + +def SignatureDefStart(builder): builder.StartObject(4) +def SignatureDefAddInputs(builder, inputs): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(inputs), 0) +def SignatureDefStartInputsVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def SignatureDefAddOutputs(builder, outputs): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(outputs), 0) +def SignatureDefStartOutputsVector(builder, numElems): return builder.StartVector(4, numElems, 4) +def SignatureDefAddMethodName(builder, methodName): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(methodName), 0) +def SignatureDefAddKey(builder, key): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(key), 0) +def SignatureDefEnd(builder): return builder.EndObject() diff --git a/ethosu/vela/tflite/TensorMap.py b/ethosu/vela/tflite/TensorMap.py new file mode 100644 index 00000000..e9b036d9 --- /dev/null +++ b/ethosu/vela/tflite/TensorMap.py @@ -0,0 +1,38 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: tflite + +import flatbuffers + +class TensorMap(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAsTensorMap(cls, buf, offset): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = TensorMap() + x.Init(buf, n + offset) + return x + + # TensorMap + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # TensorMap + def Name(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.String(o + self._tab.Pos) + return None + + # TensorMap + def TensorIndex(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 TensorMapStart(builder): builder.StartObject(2) +def TensorMapAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) +def TensorMapAddTensorIndex(builder, tensorIndex): builder.PrependUint32Slot(1, tensorIndex, 0) +def TensorMapEnd(builder): return builder.EndObject() |