aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/tflite/Tensor.py
diff options
context:
space:
mode:
Diffstat (limited to 'ethosu/vela/tflite/Tensor.py')
-rw-r--r--ethosu/vela/tflite/Tensor.py89
1 files changed, 87 insertions, 2 deletions
diff --git a/ethosu/vela/tflite/Tensor.py b/ethosu/vela/tflite/Tensor.py
index 4c39b7cb..87303e11 100644
--- a/ethosu/vela/tflite/Tensor.py
+++ b/ethosu/vela/tflite/Tensor.py
@@ -3,17 +3,27 @@
# namespace: tflite
import flatbuffers
+from flatbuffers.compat import import_numpy
+np = import_numpy()
class Tensor(object):
__slots__ = ['_tab']
@classmethod
- def GetRootAsTensor(cls, buf, offset):
+ def GetRootAs(cls, buf, offset=0):
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
x = Tensor()
x.Init(buf, n + offset)
return x
+ @classmethod
+ def GetRootAsTensor(cls, buf, offset=0):
+ """This method is deprecated. Please switch to GetRootAs."""
+ return cls.GetRootAs(buf, offset)
+ @classmethod
+ def TensorBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
+ return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x54\x46\x4C\x33", size_prefixed=size_prefixed)
+
# Tensor
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -41,6 +51,11 @@ class Tensor(object):
return 0
# Tensor
+ def ShapeIsNone(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
+ return o == 0
+
+ # Tensor
def Type(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
if o != 0:
@@ -112,15 +127,85 @@ class Tensor(object):
return self._tab.VectorLen(o)
return 0
-def TensorStart(builder): builder.StartObject(8)
+ # Tensor
+ def ShapeSignatureIsNone(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18))
+ return o == 0
+
+ # Tensor
+ def HasRank(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(20))
+ if o != 0:
+ return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos))
+ return False
+
+ # Tensor
+ def VariantTensors(self, j):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22))
+ if o != 0:
+ x = self._tab.Vector(o)
+ x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
+ x = self._tab.Indirect(x)
+ from .VariantSubType import VariantSubType
+ obj = VariantSubType()
+ obj.Init(self._tab.Bytes, x)
+ return obj
+ return None
+
+ # Tensor
+ def VariantTensorsLength(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22))
+ if o != 0:
+ return self._tab.VectorLen(o)
+ return 0
+
+ # Tensor
+ def VariantTensorsIsNone(self):
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22))
+ return o == 0
+
+def TensorStart(builder): builder.StartObject(10)
+def Start(builder):
+ return TensorStart(builder)
def TensorAddShape(builder, shape): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(shape), 0)
+def AddShape(builder, shape):
+ return TensorAddShape(builder, shape)
def TensorStartShapeVector(builder, numElems): return builder.StartVector(4, numElems, 4)
+def StartShapeVector(builder, numElems):
+ return TensorStartShapeVector(builder, numElems)
def TensorAddType(builder, type): builder.PrependInt8Slot(1, type, 0)
+def AddType(builder, type):
+ return TensorAddType(builder, type)
def TensorAddBuffer(builder, buffer): builder.PrependUint32Slot(2, buffer, 0)
+def AddBuffer(builder, buffer):
+ return TensorAddBuffer(builder, buffer)
def TensorAddName(builder, name): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0)
+def AddName(builder, name):
+ return TensorAddName(builder, name)
def TensorAddQuantization(builder, quantization): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(quantization), 0)
+def AddQuantization(builder, quantization):
+ return TensorAddQuantization(builder, quantization)
def TensorAddIsVariable(builder, isVariable): builder.PrependBoolSlot(5, isVariable, 0)
+def AddIsVariable(builder, isVariable):
+ return TensorAddIsVariable(builder, isVariable)
def TensorAddSparsity(builder, sparsity): builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(sparsity), 0)
+def AddSparsity(builder, sparsity):
+ return TensorAddSparsity(builder, sparsity)
def TensorAddShapeSignature(builder, shapeSignature): builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(shapeSignature), 0)
+def AddShapeSignature(builder, shapeSignature):
+ return TensorAddShapeSignature(builder, shapeSignature)
def TensorStartShapeSignatureVector(builder, numElems): return builder.StartVector(4, numElems, 4)
+def StartShapeSignatureVector(builder, numElems):
+ return TensorStartShapeSignatureVector(builder, numElems)
+def TensorAddHasRank(builder, hasRank): builder.PrependBoolSlot(8, hasRank, 0)
+def AddHasRank(builder, hasRank):
+ return TensorAddHasRank(builder, hasRank)
+def TensorAddVariantTensors(builder, variantTensors): builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(variantTensors), 0)
+def AddVariantTensors(builder, variantTensors):
+ return TensorAddVariantTensors(builder, variantTensors)
+def TensorStartVariantTensorsVector(builder, numElems): return builder.StartVector(4, numElems, 4)
+def StartVariantTensorsVector(builder, numElems):
+ return TensorStartVariantTensorsVector(builder, numElems)
def TensorEnd(builder): return builder.EndObject()
+def End(builder):
+ return TensorEnd(builder) \ No newline at end of file