1# RKNNToolkit2 API Difference With Toolkit1
2
3## rknn.config
4- Toolkit1:
5
6        config(batch_size=100,                                  # abandoned
7               caffe_mean_file=None,                            # abandoned
8               dtype='float32',                                 # abandoned
9               epochs=-1,                                       # abandoned
10               force_gray=None,                                 # abandoned
11               input_fitting='scale',                           # abandoned
12               input_normalization=None,                        # abandoned
13               mean_file=None,                                  # abandoned
14               model_data_format='zone',                        # abandoned
15               model_quantize=None,                             # abandoned
16               optimize='Default',                              # abandoned
17               quantized_dtype='asymmetric_affine-u8',
18               quantized_moving_alpha=0.01,                     # abandoned
19               quantized_algorithm='normal',
20               quantized_divergence_nbins=1024,                 # abandoned
21               mmse_epoch=3,                                    # abandoned
22               random_brightness=None,                          # abandoned
23               random_contrast=None,                            # abandoned
24               random_crop=None,                                # abandoned
25               random_flip=None,                                # abandoned
26               random_mirror=None,                              # abandoned
27               reorder_channel=None,                            # abandoned
28               restart=False,                                   # abandoned
29               samples=-1,                                      # abandoned
30               need_horizontal_merge=False,                     # abandoned
31               deconv_merge=True,                               # abandoned
32               conv_mul_merge=True,                             # abandoned
33               quantized_hybrid=False,                          # abandoned
34               output_optimize=0,                               # abandoned
35               remove_tensorflow_output_permute=False,          # abandoned
36               optimization_level=3,
37               target_platform=None,
38               mean_values=None,
39               std_values=None,
40               channel_mean_value=None,                         # abandoned
41               force_builtin_perm=False,                        # abandoned
42               do_sparse_network=True,                          # abandoned
43               merge_dequant_layer_and_output_node=False,       # abandoned
44               quantize_input_node=False,                       # abandoned
45               inputs_scale_range=None)                         # abandoned
46
47- Toolkit2:
48
49        config(mean_values=None,
50               std_values=None,
51               quantized_dtype='asymmetric_quantized-8',
52               quantized_algorithm='normal',
53               quantized_method='channel',                      # new
54               target_platform=None,
55               quant_img_RGB2BGR=False,                         # new
56               float_dtype='float16',                           # new
57               optimization_level=3,
58               custom_string=None,                              # new
59               output_tensor_type=None)                         # new
60
61- In addition to the above abandoned/new items, there are other differences:
62
63        quantized_dtype:
64            toolkit1: asymmetric_affine-u8, dynamic_fixed_point-i8, dynamic_fixed_point-i16
65            toolkit2: asymmetric_quantized-8
66        quantized_algorithm:
67            toolkit1: normal(default), mmse, kl_divergence, moving_average
68            toolkit2: normal(default), mmse
69        target_platform:
70            toolkit1: rk1808, rk3399pro, rv1109, rv1126
71            toolkit2: rk3566, rk3568, rk3588
72
73## rknn.load_tensorflow
74- Toolkit1:
75
76        load_tensorflow(tf_pb,
77                        inputs,
78                        input_size_list,
79                        outputs,
80                        predef_file=None,                       # abandoned
81                        mean_values=None,                       # abandoned
82                        std_values=None,                        # abandoned
83                        size_with_batch=None)                   # abandoned
84
85- Toolkit2:
86
87        load_tensorflow(tf_pb,
88                        inputs,
89                        input_size_list,
90                        outputs)
91
92- In addition to the above abandoned items, there are other differences:
93
94        inputs:
95            toolkit1: node list (layer name)
96            toolkit2: node list (operand name)
97        outputs:
98            toolkit1: node list (layer name)
99            toolkit2: node list (operand name)
100
101## rknn.load_caffe
102- Toolkit1:
103
104        load_caffe(model,
105                   proto,                                       # abandoned
106                   blobs=None)
107- Toolkit2:
108
109        load_caffe(model,
110                   blobs=None,
111                   input_name=None)                             # new
112
113
114## rknn.load_keras
115- Toolkit1:
116
117        load_keras(model, convert_engine='Keras')
118- Toolkit2:
119
120        Not supported yet!
121
122## rknn.load_pytorch
123- Toolkit1:
124
125        load_pytorch(model,
126                     input_size_list=None,
127                     inputs=None,                               # abandoned
128                     outputs=None,                              # abandoned
129                     convert_engine='torch')                    # abandoned
130- Toolkit2:
131
132        load_pytorch(model,
133                     input_size_list)
134
135## rknn.load_mxnet
136- Toolkit1:
137
138        load_mxnet(symbol, params, input_size_list=None)
139- Toolkit2:
140
141        Not supported yet!
142
143## rknn.build
144- Toolkit1:
145
146        build(do_quantization=True,
147              dataset='dataset.txt',
148              pre_compile=False,                                # abandoned
149              rknn_batch_size=-1)
150- Toolkit2:
151
152        build(do_quantization=True,
153              dataset='dataset.txt',
154              rknn_batch_size=-1):
155
156
157## rknn.direct_build
158- Toolkit1:
159
160        direct_build(model_input, data_input, model_quantize=None, pre_compile=False)
161- Toolkit2:
162
163        Not supported yet!
164
165## rknn.hybrid_quantization_step1
166- Toolkit1:
167
168        hybrid_quantization_step1(dataset=None)
169- Toolkit2:
170
171        hybrid_quantization_step1(dataset=None,
172                                  rknn_batch_size=-1,           # new
173                                  proposal=False,               # new
174                                  proposal_dataset_size=1)      # new
175
176
177## rknn.hybrid_quantization_step2
178- Toolkit1:
179
180        hybrid_quantization_step2(model_input,
181                                  data_input,
182                                  model_quantization_cfg,
183                                  dataset,                      # abandoned
184                                  pre_compile=False)            # abandoned
185- Toolkit2:
186
187        hybrid_quantization_step2(model_input,
188                                  data_input,
189                                  model_quantization_cfg)
190
191
192## rknn.accuracy_analysis
193- Toolkit1:
194
195        accuracy_analysis(inputs,
196                          output_dir='./snapshot',
197                          calc_qnt_error=True,                  # abandoned
198                          target=None,
199                          device_id=None,
200                          dump_file_type='tensor')              # abandoned
201- Toolkit2:
202
203        accuracy_analysis(inputs,
204                          output_dir='./snapshot',
205                          target=None,
206                          device_id=None)
207
208
209## rknn.load_rknn
210- Toolkit1:
211
212        load_rknn(path,
213                  load_model_in_npu=False)                      # abandoned
214- Toolkit2:
215
216        load_rknn(path)
217
218
219## rknn.export_rknn
220- Toolkit1:
221
222        export_rknn(export_path)
223- Toolkit2:
224
225        export_rknn(export_path,
226                    **kwargs)                                   # new
227
228## rknn.load_firmware
229- Toolkit1:
230
231        load_firmware(fw_dir=None)
232- Toolkit2:
233
234        Not supported yet!
235
236
237## rknn.init_runtime
238- Toolkit1:
239
240        init_runtime(target=None,
241                     target_sub_class=None,
242                     device_id=None,
243                     perf_debug=False,
244                     eval_mem=False,
245                     async_mode=False,
246                     rknn2precompile=False)                     # abandoned
247- Toolkit2:
248
249        init_runtime(target=None,
250                     target_sub_class=None,
251                     device_id=None,
252                     perf_debug=False,
253                     eval_mem=False,
254                     async_mode=False)
255
256- In addition to the above abandoned items, there are other differences:
257
258        target:
259            toolkit1: None(simulator), RK3399Pro, RK1808
260            toolkit2: None(simulator), RK3566, RK3568, RK3588
261
262
263
264## rknn.inference
265- Toolkit1:
266
267        inference(inputs,
268                  data_type=None,                               # abandoned
269                  data_format=None,
270                  inputs_pass_through=None,
271                  get_frame_id=False)
272- Toolkit2:
273
274        inference(inputs,
275                  data_format=None,
276                  inputs_pass_through=None,
277                  get_frame_id=False)
278
279
280## rknn.eval_perf
281- Toolkit1:
282
283        eval_perf(inputs=None,
284                  data_type=None,                               # abandoned
285                  data_format=None,
286                  is_print=True,
287                  loop_cnt=1)                                   # abandoned
288- Toolkit2:
289
290        eval_perf(inputs=None,
291                  data_format=None,
292                  is_print=True)
293
294
295## rknn.export_rknn_precompile_model
296- Toolkit1:
297
298        export_rknn_precompile_model(export_path=None)
299- Toolkit2:
300
301        Abandoned
302
303
304## rknn.export_rknn_sync_model
305- Toolkit1:
306
307        export_rknn_sync_model(input_model=None, sync_uids=None, output_model=None)
308- Toolkit2:
309
310        Abandoned
311
312
313## rknn.register_op
314- Toolkit1:
315
316        register_op(op_path)
317- Toolkit2:
318
319        Not supported yet
320
321
322## rknn.fetch_rknn_model_config
323- Toolkit1:
324
325        fetch_rknn_model_config(model_path)
326- Toolkit2:
327
328        Not supported yet
329
330
331## rknn.list_support_target_platform
332- Toolkit1:
333
334        list_support_target_platform(rknn_model=None)
335- Toolkit2:
336
337        Not supported yet
338