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,94 @@
|
|
|
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 Type1(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 = Type1()
|
|
16
|
+
x.Init(buf, n + offset)
|
|
17
|
+
return x
|
|
18
|
+
|
|
19
|
+
@classmethod
|
|
20
|
+
def GetRootAsType1(cls, buf, offset=0):
|
|
21
|
+
"""This method is deprecated. Please switch to GetRootAs."""
|
|
22
|
+
return cls.GetRootAs(buf, offset)
|
|
23
|
+
@classmethod
|
|
24
|
+
def Type1BufferHasIdentifier(cls, buf, offset, size_prefixed=False):
|
|
25
|
+
return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x52\x4B\x4E\x4E", size_prefixed=size_prefixed)
|
|
26
|
+
|
|
27
|
+
# Type1
|
|
28
|
+
def Init(self, buf, pos):
|
|
29
|
+
self._tab = flatbuffers.table.Table(buf, pos)
|
|
30
|
+
|
|
31
|
+
# Type1
|
|
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
|
+
def Type1Start(builder):
|
|
39
|
+
builder.StartObject(1)
|
|
40
|
+
|
|
41
|
+
def Start(builder):
|
|
42
|
+
Type1Start(builder)
|
|
43
|
+
|
|
44
|
+
def Type1AddVar1(builder, var1):
|
|
45
|
+
builder.PrependInt32Slot(0, var1, 0)
|
|
46
|
+
|
|
47
|
+
def AddVar1(builder, var1):
|
|
48
|
+
Type1AddVar1(builder, var1)
|
|
49
|
+
|
|
50
|
+
def Type1End(builder):
|
|
51
|
+
return builder.EndObject()
|
|
52
|
+
|
|
53
|
+
def End(builder):
|
|
54
|
+
return Type1End(builder)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class Type1T(object):
|
|
58
|
+
|
|
59
|
+
# Type1T
|
|
60
|
+
def __init__(
|
|
61
|
+
self,
|
|
62
|
+
var1 = 0,
|
|
63
|
+
):
|
|
64
|
+
self.var1 = var1 # type: int
|
|
65
|
+
|
|
66
|
+
@classmethod
|
|
67
|
+
def InitFromBuf(cls, buf, pos):
|
|
68
|
+
type1 = Type1()
|
|
69
|
+
type1.Init(buf, pos)
|
|
70
|
+
return cls.InitFromObj(type1)
|
|
71
|
+
|
|
72
|
+
@classmethod
|
|
73
|
+
def InitFromPackedBuf(cls, buf, pos=0):
|
|
74
|
+
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos)
|
|
75
|
+
return cls.InitFromBuf(buf, pos+n)
|
|
76
|
+
|
|
77
|
+
@classmethod
|
|
78
|
+
def InitFromObj(cls, type1):
|
|
79
|
+
x = Type1T()
|
|
80
|
+
x._UnPack(type1)
|
|
81
|
+
return x
|
|
82
|
+
|
|
83
|
+
# Type1T
|
|
84
|
+
def _UnPack(self, type1):
|
|
85
|
+
if type1 is None:
|
|
86
|
+
return
|
|
87
|
+
self.var1 = type1.Var1()
|
|
88
|
+
|
|
89
|
+
# Type1T
|
|
90
|
+
def Pack(self, builder):
|
|
91
|
+
Type1Start(builder)
|
|
92
|
+
Type1AddVar1(builder, self.var1)
|
|
93
|
+
type1 = Type1End(builder)
|
|
94
|
+
return type1
|
|
@@ -0,0 +1,255 @@
|
|
|
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 Type2(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 = Type2()
|
|
16
|
+
x.Init(buf, n + offset)
|
|
17
|
+
return x
|
|
18
|
+
|
|
19
|
+
@classmethod
|
|
20
|
+
def GetRootAsType2(cls, buf, offset=0):
|
|
21
|
+
"""This method is deprecated. Please switch to GetRootAs."""
|
|
22
|
+
return cls.GetRootAs(buf, offset)
|
|
23
|
+
@classmethod
|
|
24
|
+
def Type2BufferHasIdentifier(cls, buf, offset, size_prefixed=False):
|
|
25
|
+
return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x52\x4B\x4E\x4E", size_prefixed=size_prefixed)
|
|
26
|
+
|
|
27
|
+
# Type2
|
|
28
|
+
def Init(self, buf, pos):
|
|
29
|
+
self._tab = flatbuffers.table.Table(buf, pos)
|
|
30
|
+
|
|
31
|
+
# Type2
|
|
32
|
+
def Var1(self, j):
|
|
33
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
|
|
34
|
+
if o != 0:
|
|
35
|
+
a = self._tab.Vector(o)
|
|
36
|
+
return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
|
|
37
|
+
return 0
|
|
38
|
+
|
|
39
|
+
# Type2
|
|
40
|
+
def Var1AsNumpy(self):
|
|
41
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
|
|
42
|
+
if o != 0:
|
|
43
|
+
return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o)
|
|
44
|
+
return 0
|
|
45
|
+
|
|
46
|
+
# Type2
|
|
47
|
+
def Var1Length(self):
|
|
48
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
|
|
49
|
+
if o != 0:
|
|
50
|
+
return self._tab.VectorLen(o)
|
|
51
|
+
return 0
|
|
52
|
+
|
|
53
|
+
# Type2
|
|
54
|
+
def Var1IsNone(self):
|
|
55
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
|
|
56
|
+
return o == 0
|
|
57
|
+
|
|
58
|
+
# Type2
|
|
59
|
+
def Var2(self, j):
|
|
60
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
|
|
61
|
+
if o != 0:
|
|
62
|
+
a = self._tab.Vector(o)
|
|
63
|
+
return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
|
|
64
|
+
return 0
|
|
65
|
+
|
|
66
|
+
# Type2
|
|
67
|
+
def Var2AsNumpy(self):
|
|
68
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
|
|
69
|
+
if o != 0:
|
|
70
|
+
return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o)
|
|
71
|
+
return 0
|
|
72
|
+
|
|
73
|
+
# Type2
|
|
74
|
+
def Var2Length(self):
|
|
75
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
|
|
76
|
+
if o != 0:
|
|
77
|
+
return self._tab.VectorLen(o)
|
|
78
|
+
return 0
|
|
79
|
+
|
|
80
|
+
# Type2
|
|
81
|
+
def Var2IsNone(self):
|
|
82
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
|
|
83
|
+
return o == 0
|
|
84
|
+
|
|
85
|
+
# Type2
|
|
86
|
+
def Var3(self, j):
|
|
87
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
|
|
88
|
+
if o != 0:
|
|
89
|
+
a = self._tab.Vector(o)
|
|
90
|
+
return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
|
|
91
|
+
return 0
|
|
92
|
+
|
|
93
|
+
# Type2
|
|
94
|
+
def Var3AsNumpy(self):
|
|
95
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
|
|
96
|
+
if o != 0:
|
|
97
|
+
return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Int32Flags, o)
|
|
98
|
+
return 0
|
|
99
|
+
|
|
100
|
+
# Type2
|
|
101
|
+
def Var3Length(self):
|
|
102
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
|
|
103
|
+
if o != 0:
|
|
104
|
+
return self._tab.VectorLen(o)
|
|
105
|
+
return 0
|
|
106
|
+
|
|
107
|
+
# Type2
|
|
108
|
+
def Var3IsNone(self):
|
|
109
|
+
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
|
|
110
|
+
return o == 0
|
|
111
|
+
|
|
112
|
+
def Type2Start(builder):
|
|
113
|
+
builder.StartObject(3)
|
|
114
|
+
|
|
115
|
+
def Start(builder):
|
|
116
|
+
Type2Start(builder)
|
|
117
|
+
|
|
118
|
+
def Type2AddVar1(builder, var1):
|
|
119
|
+
builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(var1), 0)
|
|
120
|
+
|
|
121
|
+
def AddVar1(builder, var1):
|
|
122
|
+
Type2AddVar1(builder, var1)
|
|
123
|
+
|
|
124
|
+
def Type2StartVar1Vector(builder, numElems):
|
|
125
|
+
return builder.StartVector(4, numElems, 4)
|
|
126
|
+
|
|
127
|
+
def StartVar1Vector(builder, numElems):
|
|
128
|
+
return Type2StartVar1Vector(builder, numElems)
|
|
129
|
+
|
|
130
|
+
def Type2AddVar2(builder, var2):
|
|
131
|
+
builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(var2), 0)
|
|
132
|
+
|
|
133
|
+
def AddVar2(builder, var2):
|
|
134
|
+
Type2AddVar2(builder, var2)
|
|
135
|
+
|
|
136
|
+
def Type2StartVar2Vector(builder, numElems):
|
|
137
|
+
return builder.StartVector(4, numElems, 4)
|
|
138
|
+
|
|
139
|
+
def StartVar2Vector(builder, numElems):
|
|
140
|
+
return Type2StartVar2Vector(builder, numElems)
|
|
141
|
+
|
|
142
|
+
def Type2AddVar3(builder, var3):
|
|
143
|
+
builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(var3), 0)
|
|
144
|
+
|
|
145
|
+
def AddVar3(builder, var3):
|
|
146
|
+
Type2AddVar3(builder, var3)
|
|
147
|
+
|
|
148
|
+
def Type2StartVar3Vector(builder, numElems):
|
|
149
|
+
return builder.StartVector(4, numElems, 4)
|
|
150
|
+
|
|
151
|
+
def StartVar3Vector(builder, numElems):
|
|
152
|
+
return Type2StartVar3Vector(builder, numElems)
|
|
153
|
+
|
|
154
|
+
def Type2End(builder):
|
|
155
|
+
return builder.EndObject()
|
|
156
|
+
|
|
157
|
+
def End(builder):
|
|
158
|
+
return Type2End(builder)
|
|
159
|
+
|
|
160
|
+
try:
|
|
161
|
+
from typing import List
|
|
162
|
+
except:
|
|
163
|
+
pass
|
|
164
|
+
|
|
165
|
+
class Type2T(object):
|
|
166
|
+
|
|
167
|
+
# Type2T
|
|
168
|
+
def __init__(
|
|
169
|
+
self,
|
|
170
|
+
var1 = None,
|
|
171
|
+
var2 = None,
|
|
172
|
+
var3 = None,
|
|
173
|
+
):
|
|
174
|
+
self.var1 = var1 # type: Optional[List[int]]
|
|
175
|
+
self.var2 = var2 # type: Optional[List[int]]
|
|
176
|
+
self.var3 = var3 # type: Optional[List[int]]
|
|
177
|
+
|
|
178
|
+
@classmethod
|
|
179
|
+
def InitFromBuf(cls, buf, pos):
|
|
180
|
+
type2 = Type2()
|
|
181
|
+
type2.Init(buf, pos)
|
|
182
|
+
return cls.InitFromObj(type2)
|
|
183
|
+
|
|
184
|
+
@classmethod
|
|
185
|
+
def InitFromPackedBuf(cls, buf, pos=0):
|
|
186
|
+
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos)
|
|
187
|
+
return cls.InitFromBuf(buf, pos+n)
|
|
188
|
+
|
|
189
|
+
@classmethod
|
|
190
|
+
def InitFromObj(cls, type2):
|
|
191
|
+
x = Type2T()
|
|
192
|
+
x._UnPack(type2)
|
|
193
|
+
return x
|
|
194
|
+
|
|
195
|
+
# Type2T
|
|
196
|
+
def _UnPack(self, type2):
|
|
197
|
+
if type2 is None:
|
|
198
|
+
return
|
|
199
|
+
if not type2.Var1IsNone():
|
|
200
|
+
if np is None:
|
|
201
|
+
self.var1 = []
|
|
202
|
+
for i in range(type2.Var1Length()):
|
|
203
|
+
self.var1.append(type2.Var1(i))
|
|
204
|
+
else:
|
|
205
|
+
self.var1 = type2.Var1AsNumpy()
|
|
206
|
+
if not type2.Var2IsNone():
|
|
207
|
+
if np is None:
|
|
208
|
+
self.var2 = []
|
|
209
|
+
for i in range(type2.Var2Length()):
|
|
210
|
+
self.var2.append(type2.Var2(i))
|
|
211
|
+
else:
|
|
212
|
+
self.var2 = type2.Var2AsNumpy()
|
|
213
|
+
if not type2.Var3IsNone():
|
|
214
|
+
if np is None:
|
|
215
|
+
self.var3 = []
|
|
216
|
+
for i in range(type2.Var3Length()):
|
|
217
|
+
self.var3.append(type2.Var3(i))
|
|
218
|
+
else:
|
|
219
|
+
self.var3 = type2.Var3AsNumpy()
|
|
220
|
+
|
|
221
|
+
# Type2T
|
|
222
|
+
def Pack(self, builder):
|
|
223
|
+
if self.var1 is not None:
|
|
224
|
+
if np is not None and type(self.var1) is np.ndarray:
|
|
225
|
+
var1 = builder.CreateNumpyVector(self.var1)
|
|
226
|
+
else:
|
|
227
|
+
Type2StartVar1Vector(builder, len(self.var1))
|
|
228
|
+
for i in reversed(range(len(self.var1))):
|
|
229
|
+
builder.PrependInt32(self.var1[i])
|
|
230
|
+
var1 = builder.EndVector()
|
|
231
|
+
if self.var2 is not None:
|
|
232
|
+
if np is not None and type(self.var2) is np.ndarray:
|
|
233
|
+
var2 = builder.CreateNumpyVector(self.var2)
|
|
234
|
+
else:
|
|
235
|
+
Type2StartVar2Vector(builder, len(self.var2))
|
|
236
|
+
for i in reversed(range(len(self.var2))):
|
|
237
|
+
builder.PrependInt32(self.var2[i])
|
|
238
|
+
var2 = builder.EndVector()
|
|
239
|
+
if self.var3 is not None:
|
|
240
|
+
if np is not None and type(self.var3) is np.ndarray:
|
|
241
|
+
var3 = builder.CreateNumpyVector(self.var3)
|
|
242
|
+
else:
|
|
243
|
+
Type2StartVar3Vector(builder, len(self.var3))
|
|
244
|
+
for i in reversed(range(len(self.var3))):
|
|
245
|
+
builder.PrependInt32(self.var3[i])
|
|
246
|
+
var3 = builder.EndVector()
|
|
247
|
+
Type2Start(builder)
|
|
248
|
+
if self.var1 is not None:
|
|
249
|
+
Type2AddVar1(builder, var1)
|
|
250
|
+
if self.var2 is not None:
|
|
251
|
+
Type2AddVar2(builder, var2)
|
|
252
|
+
if self.var3 is not None:
|
|
253
|
+
Type2AddVar3(builder, var3)
|
|
254
|
+
type2 = Type2End(builder)
|
|
255
|
+
return type2
|
|
@@ -0,0 +1,94 @@
|
|
|
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 Type3(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 = Type3()
|
|
16
|
+
x.Init(buf, n + offset)
|
|
17
|
+
return x
|
|
18
|
+
|
|
19
|
+
@classmethod
|
|
20
|
+
def GetRootAsType3(cls, buf, offset=0):
|
|
21
|
+
"""This method is deprecated. Please switch to GetRootAs."""
|
|
22
|
+
return cls.GetRootAs(buf, offset)
|
|
23
|
+
@classmethod
|
|
24
|
+
def Type3BufferHasIdentifier(cls, buf, offset, size_prefixed=False):
|
|
25
|
+
return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x52\x4B\x4E\x4E", size_prefixed=size_prefixed)
|
|
26
|
+
|
|
27
|
+
# Type3
|
|
28
|
+
def Init(self, buf, pos):
|
|
29
|
+
self._tab = flatbuffers.table.Table(buf, pos)
|
|
30
|
+
|
|
31
|
+
# Type3
|
|
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
|
+
def Type3Start(builder):
|
|
39
|
+
builder.StartObject(1)
|
|
40
|
+
|
|
41
|
+
def Start(builder):
|
|
42
|
+
Type3Start(builder)
|
|
43
|
+
|
|
44
|
+
def Type3AddVar1(builder, var1):
|
|
45
|
+
builder.PrependInt32Slot(0, var1, 0)
|
|
46
|
+
|
|
47
|
+
def AddVar1(builder, var1):
|
|
48
|
+
Type3AddVar1(builder, var1)
|
|
49
|
+
|
|
50
|
+
def Type3End(builder):
|
|
51
|
+
return builder.EndObject()
|
|
52
|
+
|
|
53
|
+
def End(builder):
|
|
54
|
+
return Type3End(builder)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class Type3T(object):
|
|
58
|
+
|
|
59
|
+
# Type3T
|
|
60
|
+
def __init__(
|
|
61
|
+
self,
|
|
62
|
+
var1 = 0,
|
|
63
|
+
):
|
|
64
|
+
self.var1 = var1 # type: int
|
|
65
|
+
|
|
66
|
+
@classmethod
|
|
67
|
+
def InitFromBuf(cls, buf, pos):
|
|
68
|
+
type3 = Type3()
|
|
69
|
+
type3.Init(buf, pos)
|
|
70
|
+
return cls.InitFromObj(type3)
|
|
71
|
+
|
|
72
|
+
@classmethod
|
|
73
|
+
def InitFromPackedBuf(cls, buf, pos=0):
|
|
74
|
+
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos)
|
|
75
|
+
return cls.InitFromBuf(buf, pos+n)
|
|
76
|
+
|
|
77
|
+
@classmethod
|
|
78
|
+
def InitFromObj(cls, type3):
|
|
79
|
+
x = Type3T()
|
|
80
|
+
x._UnPack(type3)
|
|
81
|
+
return x
|
|
82
|
+
|
|
83
|
+
# Type3T
|
|
84
|
+
def _UnPack(self, type3):
|
|
85
|
+
if type3 is None:
|
|
86
|
+
return
|
|
87
|
+
self.var1 = type3.Var1()
|
|
88
|
+
|
|
89
|
+
# Type3T
|
|
90
|
+
def Pack(self, builder):
|
|
91
|
+
Type3Start(builder)
|
|
92
|
+
Type3AddVar1(builder, self.var1)
|
|
93
|
+
type3 = Type3End(builder)
|
|
94
|
+
return type3
|
|
File without changes
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: rknncli
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: A command line tool for parsing and displaying RKNN model information
|
|
5
|
+
Author: rknncli
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: Development Status :: 3 - Alpha
|
|
8
|
+
Classifier: Intended Audience :: Developers
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
|
|
19
|
+
# RKNN CLI
|
|
20
|
+
|
|
21
|
+
A command line tool for parsing and displaying RKNN model information.
|
|
22
|
+
|
|
23
|
+
## Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pip install -e .
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
rknncli <path-to-rknn-model>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Example:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
rknncli assets/yolov5s-640-640.rknn
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Output Format
|
|
42
|
+
|
|
43
|
+
The tool prints model information in the following format:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Model: rknn model
|
|
47
|
+
Version: 1.6.2-source_code
|
|
48
|
+
Target Platform: rk3588
|
|
49
|
+
|
|
50
|
+
Input information
|
|
51
|
+
--------------------------------------------------------------------------------
|
|
52
|
+
ValueInfo "images": type INT8, shape ['batch', 3, 'height', 'width'],
|
|
53
|
+
|
|
54
|
+
Output information
|
|
55
|
+
--------------------------------------------------------------------------------
|
|
56
|
+
ValueInfo "output0": type INT8, shape ['batch', 255, 80, 80],
|
|
57
|
+
ValueInfo "286": type INT8, shape ['batch', 255, 40, 40],
|
|
58
|
+
ValueInfo "288": type INT8, shape ['batch', 255, 20, 20'],
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Development
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Install in development mode
|
|
65
|
+
pip install -e .
|
|
66
|
+
|
|
67
|
+
# Run the CLI
|
|
68
|
+
python -m rknncli.cli assets/yolov5s-640-640.rknn
|
|
69
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
rknncli/__init__.py,sha256=_xwmD7Q3XeNRSKVea1V9Yf5ZrFUdE9TRk09NOw87zTQ,111
|
|
2
|
+
rknncli/cli.py,sha256=xsvGye9fsaRO3vDoN6FBYLdityibR5_SsRhNGFuJgX8,6831
|
|
3
|
+
rknncli/parser.py,sha256=45CrVa18i2AOZ_UseyQQp6xySQ70GMYpmDh3P3Us_iU,11987
|
|
4
|
+
rknncli/schema/rknn/Graph.py,sha256=RgRgauVQ8agqx0VCfNBl-VAZPq4qBRgcbzYKYOc-Qgs,12591
|
|
5
|
+
rknncli/schema/rknn/Model.py,sha256=3RubV822E-Q9DNfOvZUwi9LSheV88XlzlJNdQfj7NWE,13797
|
|
6
|
+
rknncli/schema/rknn/Node.py,sha256=jF8ZKXdQRZqATBhqffJLoY7ETMN0KF5bpaTii8J66WI,12052
|
|
7
|
+
rknncli/schema/rknn/Tensor.py,sha256=QTmyIITukptbA9rGcHBCaBingEotevh7ev7ZD4IC9Mo,23476
|
|
8
|
+
rknncli/schema/rknn/Type1.py,sha256=9lRda2jNpvgm8yVWraNCEhv_qCFkmgqCsxMNSOa9zXc,2330
|
|
9
|
+
rknncli/schema/rknn/Type2.py,sha256=Hz2waIXoPJ3npsSE3yoNN6y0nss2_uu7JCoccPg83hw,8128
|
|
10
|
+
rknncli/schema/rknn/Type3.py,sha256=9uV1-WF2jhMJLFzo2k7MQdhDnif2lsd2J1C5enskyPc,2330
|
|
11
|
+
rknncli/schema/rknn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
+
rknncli-0.2.0.dist-info/METADATA,sha256=mC_vsPRsRi6y1w-c1wF9_yElVnUB2s-HUL_QSRxXE-4,1659
|
|
13
|
+
rknncli-0.2.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
14
|
+
rknncli-0.2.0.dist-info/entry_points.txt,sha256=CiPnMUneLqwv2pcjg4V5sQbQDTdx-hi7t5W5glqYZVM,45
|
|
15
|
+
rknncli-0.2.0.dist-info/top_level.txt,sha256=HPlOMKakzngvN2n2l6Bsg8N1Xflsm7fyCbPO6Fx_7iA,8
|
|
16
|
+
rknncli-0.2.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
rknncli
|