rknncli 0.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rknncli/__init__.py +3 -0
- rknncli/cli.py +229 -0
- rknncli/parser.py +320 -0
- rknncli/schema/rknn/Graph.py +371 -0
- rknncli/schema/rknn/Model.py +422 -0
- rknncli/schema/rknn/Node.py +380 -0
- rknncli/schema/rknn/Tensor.py +697 -0
- rknncli/schema/rknn/Type1.py +94 -0
- rknncli/schema/rknn/Type2.py +255 -0
- rknncli/schema/rknn/Type3.py +94 -0
- rknncli/schema/rknn/__init__.py +0 -0
- rknncli-0.2.0.dist-info/METADATA +69 -0
- rknncli-0.2.0.dist-info/RECORD +16 -0
- rknncli-0.2.0.dist-info/WHEEL +5 -0
- rknncli-0.2.0.dist-info/entry_points.txt +2 -0
- rknncli-0.2.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
# automatically generated by the FlatBuffers compiler, do not modify
|
|
2
|
+
|
|
3
|
+
# namespace: rknn
|
|
4
|
+
|
|
5
|
+
import flatbuffers
|
|
6
|
+
from flatbuffers.compat import import_numpy
|
|
7
|
+
np = import_numpy()
|
|
8
|
+
|
|
9
|
+
class Node(object):
|
|
10
|
+
__slots__ = ['_tab']
|
|
11
|
+
|
|
12
|
+
@classmethod
|
|
13
|
+
def GetRootAs(cls, buf, offset=0):
|
|
14
|
+
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
|
|
15
|
+
x = Node()
|
|
16
|
+
x.Init(buf, n + offset)
|
|
17
|
+
return x
|
|
18
|
+
|
|
19
|
+
@classmethod
|
|
20
|
+
def GetRootAsNode(cls, buf, offset=0):
|
|
21
|
+
"""This method is deprecated. Please switch to GetRootAs."""
|
|
22
|
+
return cls.GetRootAs(buf, offset)
|
|
23
|
+
@classmethod
|
|
24
|
+
def NodeBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
|
|
25
|
+
return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x52\x4B\x4E\x4E", size_prefixed=size_prefixed)
|
|
26
|
+
|
|
27
|
+
# Node
|
|
28
|
+
def Init(self, buf, pos):
|
|
29
|
+
self._tab = flatbuffers.table.Table(buf, pos)
|
|
30
|
+
|
|
31
|
+
# Node
|
|
32
|
+
def Var1(self):
|
|
33
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
|
|
34
|
+
if o != 0:
|
|
35
|
+
return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos)
|
|
36
|
+
return 0
|
|
37
|
+
|
|
38
|
+
# Node
|
|
39
|
+
def Type(self):
|
|
40
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
|
|
41
|
+
if o != 0:
|
|
42
|
+
return self._tab.String(o + self._tab.Pos)
|
|
43
|
+
return None
|
|
44
|
+
|
|
45
|
+
# Node
|
|
46
|
+
def Name(self):
|
|
47
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
|
|
48
|
+
if o != 0:
|
|
49
|
+
return self._tab.String(o + self._tab.Pos)
|
|
50
|
+
return None
|
|
51
|
+
|
|
52
|
+
# Node
|
|
53
|
+
def Var2(self):
|
|
54
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
|
|
55
|
+
if o != 0:
|
|
56
|
+
return self._tab.Get(flatbuffers.number_types.Int8Flags, o + self._tab.Pos)
|
|
57
|
+
return 0
|
|
58
|
+
|
|
59
|
+
# Node
|
|
60
|
+
def Inputs(self, j):
|
|
61
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
|
|
62
|
+
if o != 0:
|
|
63
|
+
a = self._tab.Vector(o)
|
|
64
|
+
return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
|
|
65
|
+
return 0
|
|
66
|
+
|
|
67
|
+
# Node
|
|
68
|
+
def InputsAsNumpy(self):
|
|
69
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
|
|
70
|
+
if o != 0:
|
|
71
|
+
return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o)
|
|
72
|
+
return 0
|
|
73
|
+
|
|
74
|
+
# Node
|
|
75
|
+
def InputsLength(self):
|
|
76
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
|
|
77
|
+
if o != 0:
|
|
78
|
+
return self._tab.VectorLen(o)
|
|
79
|
+
return 0
|
|
80
|
+
|
|
81
|
+
# Node
|
|
82
|
+
def InputsIsNone(self):
|
|
83
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
|
|
84
|
+
return o == 0
|
|
85
|
+
|
|
86
|
+
# Node
|
|
87
|
+
def Outputs(self, j):
|
|
88
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
|
|
89
|
+
if o != 0:
|
|
90
|
+
a = self._tab.Vector(o)
|
|
91
|
+
return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
|
|
92
|
+
return 0
|
|
93
|
+
|
|
94
|
+
# Node
|
|
95
|
+
def OutputsAsNumpy(self):
|
|
96
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
|
|
97
|
+
if o != 0:
|
|
98
|
+
return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o)
|
|
99
|
+
return 0
|
|
100
|
+
|
|
101
|
+
# Node
|
|
102
|
+
def OutputsLength(self):
|
|
103
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
|
|
104
|
+
if o != 0:
|
|
105
|
+
return self._tab.VectorLen(o)
|
|
106
|
+
return 0
|
|
107
|
+
|
|
108
|
+
# Node
|
|
109
|
+
def OutputsIsNone(self):
|
|
110
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
|
|
111
|
+
return o == 0
|
|
112
|
+
|
|
113
|
+
# Node
|
|
114
|
+
def Var3(self, j):
|
|
115
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
|
|
116
|
+
if o != 0:
|
|
117
|
+
x = self._tab.Vector(o)
|
|
118
|
+
x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
|
|
119
|
+
x = self._tab.Indirect(x)
|
|
120
|
+
from rknncli.schema.rknn.Type3 import Type3
|
|
121
|
+
obj = Type3()
|
|
122
|
+
obj.Init(self._tab.Bytes, x)
|
|
123
|
+
return obj
|
|
124
|
+
return None
|
|
125
|
+
|
|
126
|
+
# Node
|
|
127
|
+
def Var3Length(self):
|
|
128
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
|
|
129
|
+
if o != 0:
|
|
130
|
+
return self._tab.VectorLen(o)
|
|
131
|
+
return 0
|
|
132
|
+
|
|
133
|
+
# Node
|
|
134
|
+
def Var3IsNone(self):
|
|
135
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
|
|
136
|
+
return o == 0
|
|
137
|
+
|
|
138
|
+
# Node
|
|
139
|
+
def Var4(self):
|
|
140
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18))
|
|
141
|
+
if o != 0:
|
|
142
|
+
return self._tab.Get(flatbuffers.number_types.Int8Flags, o + self._tab.Pos)
|
|
143
|
+
return 0
|
|
144
|
+
|
|
145
|
+
# Node
|
|
146
|
+
def Var5(self):
|
|
147
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(20))
|
|
148
|
+
if o != 0:
|
|
149
|
+
return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos)
|
|
150
|
+
return 0
|
|
151
|
+
|
|
152
|
+
# Node
|
|
153
|
+
def Var6(self):
|
|
154
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22))
|
|
155
|
+
if o != 0:
|
|
156
|
+
return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos)
|
|
157
|
+
return 0
|
|
158
|
+
|
|
159
|
+
def NodeStart(builder):
|
|
160
|
+
builder.StartObject(10)
|
|
161
|
+
|
|
162
|
+
def Start(builder):
|
|
163
|
+
NodeStart(builder)
|
|
164
|
+
|
|
165
|
+
def NodeAddVar1(builder, var1):
|
|
166
|
+
builder.PrependInt32Slot(0, var1, 0)
|
|
167
|
+
|
|
168
|
+
def AddVar1(builder, var1):
|
|
169
|
+
NodeAddVar1(builder, var1)
|
|
170
|
+
|
|
171
|
+
def NodeAddType(builder, type):
|
|
172
|
+
builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(type), 0)
|
|
173
|
+
|
|
174
|
+
def AddType(builder, type):
|
|
175
|
+
NodeAddType(builder, type)
|
|
176
|
+
|
|
177
|
+
def NodeAddName(builder, name):
|
|
178
|
+
builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0)
|
|
179
|
+
|
|
180
|
+
def AddName(builder, name):
|
|
181
|
+
NodeAddName(builder, name)
|
|
182
|
+
|
|
183
|
+
def NodeAddVar2(builder, var2):
|
|
184
|
+
builder.PrependInt8Slot(3, var2, 0)
|
|
185
|
+
|
|
186
|
+
def AddVar2(builder, var2):
|
|
187
|
+
NodeAddVar2(builder, var2)
|
|
188
|
+
|
|
189
|
+
def NodeAddInputs(builder, inputs):
|
|
190
|
+
builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(inputs), 0)
|
|
191
|
+
|
|
192
|
+
def AddInputs(builder, inputs):
|
|
193
|
+
NodeAddInputs(builder, inputs)
|
|
194
|
+
|
|
195
|
+
def NodeStartInputsVector(builder, numElems):
|
|
196
|
+
return builder.StartVector(4, numElems, 4)
|
|
197
|
+
|
|
198
|
+
def StartInputsVector(builder, numElems):
|
|
199
|
+
return NodeStartInputsVector(builder, numElems)
|
|
200
|
+
|
|
201
|
+
def NodeAddOutputs(builder, outputs):
|
|
202
|
+
builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(outputs), 0)
|
|
203
|
+
|
|
204
|
+
def AddOutputs(builder, outputs):
|
|
205
|
+
NodeAddOutputs(builder, outputs)
|
|
206
|
+
|
|
207
|
+
def NodeStartOutputsVector(builder, numElems):
|
|
208
|
+
return builder.StartVector(4, numElems, 4)
|
|
209
|
+
|
|
210
|
+
def StartOutputsVector(builder, numElems):
|
|
211
|
+
return NodeStartOutputsVector(builder, numElems)
|
|
212
|
+
|
|
213
|
+
def NodeAddVar3(builder, var3):
|
|
214
|
+
builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(var3), 0)
|
|
215
|
+
|
|
216
|
+
def AddVar3(builder, var3):
|
|
217
|
+
NodeAddVar3(builder, var3)
|
|
218
|
+
|
|
219
|
+
def NodeStartVar3Vector(builder, numElems):
|
|
220
|
+
return builder.StartVector(4, numElems, 4)
|
|
221
|
+
|
|
222
|
+
def StartVar3Vector(builder, numElems):
|
|
223
|
+
return NodeStartVar3Vector(builder, numElems)
|
|
224
|
+
|
|
225
|
+
def NodeAddVar4(builder, var4):
|
|
226
|
+
builder.PrependInt8Slot(7, var4, 0)
|
|
227
|
+
|
|
228
|
+
def AddVar4(builder, var4):
|
|
229
|
+
NodeAddVar4(builder, var4)
|
|
230
|
+
|
|
231
|
+
def NodeAddVar5(builder, var5):
|
|
232
|
+
builder.PrependInt32Slot(8, var5, 0)
|
|
233
|
+
|
|
234
|
+
def AddVar5(builder, var5):
|
|
235
|
+
NodeAddVar5(builder, var5)
|
|
236
|
+
|
|
237
|
+
def NodeAddVar6(builder, var6):
|
|
238
|
+
builder.PrependInt32Slot(9, var6, 0)
|
|
239
|
+
|
|
240
|
+
def AddVar6(builder, var6):
|
|
241
|
+
NodeAddVar6(builder, var6)
|
|
242
|
+
|
|
243
|
+
def NodeEnd(builder):
|
|
244
|
+
return builder.EndObject()
|
|
245
|
+
|
|
246
|
+
def End(builder):
|
|
247
|
+
return NodeEnd(builder)
|
|
248
|
+
|
|
249
|
+
import rknncli.schema.rknn.Type3
|
|
250
|
+
try:
|
|
251
|
+
from typing import List
|
|
252
|
+
except:
|
|
253
|
+
pass
|
|
254
|
+
|
|
255
|
+
class NodeT(object):
|
|
256
|
+
|
|
257
|
+
# NodeT
|
|
258
|
+
def __init__(
|
|
259
|
+
self,
|
|
260
|
+
var1 = 0,
|
|
261
|
+
type = None,
|
|
262
|
+
name = None,
|
|
263
|
+
var2 = 0,
|
|
264
|
+
inputs = None,
|
|
265
|
+
outputs = None,
|
|
266
|
+
var3 = None,
|
|
267
|
+
var4 = 0,
|
|
268
|
+
var5 = 0,
|
|
269
|
+
var6 = 0,
|
|
270
|
+
):
|
|
271
|
+
self.var1 = var1 # type: int
|
|
272
|
+
self.type = type # type: Optional[str]
|
|
273
|
+
self.name = name # type: Optional[str]
|
|
274
|
+
self.var2 = var2 # type: int
|
|
275
|
+
self.inputs = inputs # type: Optional[List[int]]
|
|
276
|
+
self.outputs = outputs # type: Optional[List[int]]
|
|
277
|
+
self.var3 = var3 # type: Optional[List[rknn.Type3.Type3T]]
|
|
278
|
+
self.var4 = var4 # type: int
|
|
279
|
+
self.var5 = var5 # type: int
|
|
280
|
+
self.var6 = var6 # type: int
|
|
281
|
+
|
|
282
|
+
@classmethod
|
|
283
|
+
def InitFromBuf(cls, buf, pos):
|
|
284
|
+
node = Node()
|
|
285
|
+
node.Init(buf, pos)
|
|
286
|
+
return cls.InitFromObj(node)
|
|
287
|
+
|
|
288
|
+
@classmethod
|
|
289
|
+
def InitFromPackedBuf(cls, buf, pos=0):
|
|
290
|
+
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos)
|
|
291
|
+
return cls.InitFromBuf(buf, pos+n)
|
|
292
|
+
|
|
293
|
+
@classmethod
|
|
294
|
+
def InitFromObj(cls, node):
|
|
295
|
+
x = NodeT()
|
|
296
|
+
x._UnPack(node)
|
|
297
|
+
return x
|
|
298
|
+
|
|
299
|
+
# NodeT
|
|
300
|
+
def _UnPack(self, node):
|
|
301
|
+
if node is None:
|
|
302
|
+
return
|
|
303
|
+
self.var1 = node.Var1()
|
|
304
|
+
self.type = node.Type()
|
|
305
|
+
self.name = node.Name()
|
|
306
|
+
self.var2 = node.Var2()
|
|
307
|
+
if not node.InputsIsNone():
|
|
308
|
+
if np is None:
|
|
309
|
+
self.inputs = []
|
|
310
|
+
for i in range(node.InputsLength()):
|
|
311
|
+
self.inputs.append(node.Inputs(i))
|
|
312
|
+
else:
|
|
313
|
+
self.inputs = node.InputsAsNumpy()
|
|
314
|
+
if not node.OutputsIsNone():
|
|
315
|
+
if np is None:
|
|
316
|
+
self.outputs = []
|
|
317
|
+
for i in range(node.OutputsLength()):
|
|
318
|
+
self.outputs.append(node.Outputs(i))
|
|
319
|
+
else:
|
|
320
|
+
self.outputs = node.OutputsAsNumpy()
|
|
321
|
+
if not node.Var3IsNone():
|
|
322
|
+
self.var3 = []
|
|
323
|
+
for i in range(node.Var3Length()):
|
|
324
|
+
if node.Var3(i) is None:
|
|
325
|
+
self.var3.append(None)
|
|
326
|
+
else:
|
|
327
|
+
type3_ = rknn.Type3.Type3T.InitFromObj(node.Var3(i))
|
|
328
|
+
self.var3.append(type3_)
|
|
329
|
+
self.var4 = node.Var4()
|
|
330
|
+
self.var5 = node.Var5()
|
|
331
|
+
self.var6 = node.Var6()
|
|
332
|
+
|
|
333
|
+
# NodeT
|
|
334
|
+
def Pack(self, builder):
|
|
335
|
+
if self.type is not None:
|
|
336
|
+
type = builder.CreateString(self.type)
|
|
337
|
+
if self.name is not None:
|
|
338
|
+
name = builder.CreateString(self.name)
|
|
339
|
+
if self.inputs is not None:
|
|
340
|
+
if np is not None and type(self.inputs) is np.ndarray:
|
|
341
|
+
inputs = builder.CreateNumpyVector(self.inputs)
|
|
342
|
+
else:
|
|
343
|
+
NodeStartInputsVector(builder, len(self.inputs))
|
|
344
|
+
for i in reversed(range(len(self.inputs))):
|
|
345
|
+
builder.PrependInt32(self.inputs[i])
|
|
346
|
+
inputs = builder.EndVector()
|
|
347
|
+
if self.outputs is not None:
|
|
348
|
+
if np is not None and type(self.outputs) is np.ndarray:
|
|
349
|
+
outputs = builder.CreateNumpyVector(self.outputs)
|
|
350
|
+
else:
|
|
351
|
+
NodeStartOutputsVector(builder, len(self.outputs))
|
|
352
|
+
for i in reversed(range(len(self.outputs))):
|
|
353
|
+
builder.PrependInt32(self.outputs[i])
|
|
354
|
+
outputs = builder.EndVector()
|
|
355
|
+
if self.var3 is not None:
|
|
356
|
+
var3list = []
|
|
357
|
+
for i in range(len(self.var3)):
|
|
358
|
+
var3list.append(self.var3[i].Pack(builder))
|
|
359
|
+
NodeStartVar3Vector(builder, len(self.var3))
|
|
360
|
+
for i in reversed(range(len(self.var3))):
|
|
361
|
+
builder.PrependUOffsetTRelative(var3list[i])
|
|
362
|
+
var3 = builder.EndVector()
|
|
363
|
+
NodeStart(builder)
|
|
364
|
+
NodeAddVar1(builder, self.var1)
|
|
365
|
+
if self.type is not None:
|
|
366
|
+
NodeAddType(builder, type)
|
|
367
|
+
if self.name is not None:
|
|
368
|
+
NodeAddName(builder, name)
|
|
369
|
+
NodeAddVar2(builder, self.var2)
|
|
370
|
+
if self.inputs is not None:
|
|
371
|
+
NodeAddInputs(builder, inputs)
|
|
372
|
+
if self.outputs is not None:
|
|
373
|
+
NodeAddOutputs(builder, outputs)
|
|
374
|
+
if self.var3 is not None:
|
|
375
|
+
NodeAddVar3(builder, var3)
|
|
376
|
+
NodeAddVar4(builder, self.var4)
|
|
377
|
+
NodeAddVar5(builder, self.var5)
|
|
378
|
+
NodeAddVar6(builder, self.var6)
|
|
379
|
+
node = NodeEnd(builder)
|
|
380
|
+
return node
|