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               remove_weight=False,                             # new
60               compress_weight=False,                           # new
61               inputs_yuv_fmt=None,                             # new
62               single_core_mode=False)                          # new
63
64- In addition to the above abandoned/new items, there are other differences:
65
66        quantized_dtype:
67            toolkit1: asymmetric_affine-u8, dynamic_fixed_point-i8, dynamic_fixed_point-i16
68            toolkit2: asymmetric_quantized-8
69        quantized_algorithm:
70            toolkit1: normal(default), mmse, kl_divergence, moving_average
71            toolkit2: normal(default), mmse
72        target_platform:
73            toolkit1: rk1808, rk3399pro, rv1109, rv1126
74            toolkit2: rk3566, rk3568, rk3588, rk3588s, rv1103, rv1106, rk3562 and newer
75
76## rknn.load_tensorflow
77- Toolkit1:
78
79        load_tensorflow(tf_pb,
80                        inputs,
81                        input_size_list,
82                        outputs,
83                        predef_file=None,                       # abandoned
84                        mean_values=None,                       # abandoned
85                        std_values=None,                        # abandoned
86                        size_with_batch=None)                   # abandoned
87
88- Toolkit2:
89
90        load_tensorflow(tf_pb,
91                        inputs,
92                        input_size_list,
93                        outputs)
94
95- In addition to the above abandoned items, there are other differences:
96
97        inputs:
98            toolkit1: node list (layer name)
99            toolkit2: node list (operand name)
100        outputs:
101            toolkit1: node list (layer name)
102            toolkit2: node list (operand name)
103
104## rknn.load_caffe
105- Toolkit1:
106
107        load_caffe(model,
108                   proto,                                       # abandoned
109                   blobs=None)
110- Toolkit2:
111
112        load_caffe(model,
113                   blobs=None,
114                   input_name=None)                             # new
115
116
117## rknn.load_keras
118- Toolkit1:
119
120        load_keras(model, convert_engine='Keras')
121- Toolkit2:
122
123        Not supported yet!
124
125## rknn.load_pytorch
126- Toolkit1:
127
128        load_pytorch(model,
129                     input_size_list=None,
130                     inputs=None,                               # abandoned
131                     outputs=None,                              # abandoned
132                     convert_engine='torch')                    # abandoned
133- Toolkit2:
134
135        load_pytorch(model,
136                     input_size_list)
137
138## rknn.load_mxnet
139- Toolkit1:
140
141        load_mxnet(symbol, params, input_size_list=None)
142- Toolkit2:
143
144        Not supported yet!
145
146## rknn.build
147- Toolkit1:
148
149        build(do_quantization=True,
150              dataset='dataset.txt',
151              pre_compile=False,                                # abandoned
152              rknn_batch_size=-1)
153- Toolkit2:
154
155        build(do_quantization=True,
156              dataset='dataset.txt',
157              rknn_batch_size=-1):
158
159
160## rknn.direct_build
161- Toolkit1:
162
163        direct_build(model_input, data_input, model_quantize=None, pre_compile=False)
164- Toolkit2:
165
166        Not supported yet!
167
168## rknn.hybrid_quantization_step1
169- Toolkit1:
170
171        hybrid_quantization_step1(dataset=None)
172- Toolkit2:
173
174        hybrid_quantization_step1(dataset=None,
175                                  rknn_batch_size=-1,           # new
176                                  proposal=False,               # new
177                                  proposal_dataset_size=1)      # new
178
179
180## rknn.hybrid_quantization_step2
181- Toolkit1:
182
183        hybrid_quantization_step2(model_input,
184                                  data_input,
185                                  model_quantization_cfg,
186                                  dataset,                      # abandoned
187                                  pre_compile=False)            # abandoned
188- Toolkit2:
189
190        hybrid_quantization_step2(model_input,
191                                  data_input,
192                                  model_quantization_cfg)
193
194
195## rknn.accuracy_analysis
196- Toolkit1:
197
198        accuracy_analysis(inputs,
199                          output_dir='./snapshot',
200                          calc_qnt_error=True,                  # abandoned
201                          target=None,
202                          device_id=None,
203                          dump_file_type='tensor')              # abandoned
204- Toolkit2:
205
206        accuracy_analysis(inputs,
207                          output_dir='./snapshot',
208                          target=None,
209                          device_id=None)
210
211
212## rknn.load_rknn
213- Toolkit1:
214
215        load_rknn(path,
216                  load_model_in_npu=False)                      # abandoned
217- Toolkit2:
218
219        load_rknn(path)
220
221
222## rknn.export_rknn
223- Toolkit1:
224
225        export_rknn(export_path)
226- Toolkit2:
227
228        export_rknn(export_path,
229                    **kwargs)                                   # new
230
231## rknn.load_firmware
232- Toolkit1:
233
234        load_firmware(fw_dir=None)
235- Toolkit2:
236
237        Not supported yet!
238
239
240## rknn.init_runtime
241- Toolkit1:
242
243        init_runtime(target=None,
244                     target_sub_class=None,
245                     device_id=None,
246                     perf_debug=False,
247                     eval_mem=False,
248                     async_mode=False,
249                     rknn2precompile=False)                     # abandoned
250- Toolkit2:
251
252        init_runtime(target=None,
253                     target_sub_class=None,
254                     device_id=None,
255                     perf_debug=False,
256                     eval_mem=False,
257                     async_mode=False)
258
259- In addition to the above abandoned items, there are other differences:
260
261        target:
262            toolkit1: None(simulator), RK3399Pro, RK1808
263            toolkit2: None(simulator), RK3566, RK3568, RK3588, RK3562
264
265
266
267## rknn.inference
268- Toolkit1:
269
270        inference(inputs,
271                  data_type=None,                               # abandoned
272                  data_format=None,
273                  inputs_pass_through=None,
274                  get_frame_id=False)
275- Toolkit2:
276
277        inference(inputs,
278                  data_format=None,
279                  inputs_pass_through=None,
280                  get_frame_id=False)
281
282
283## rknn.eval_perf
284- Toolkit1:
285
286        eval_perf(inputs=None,                                  # abandoned
287                  data_type=None,                               # abandoned
288                  data_format=None,                             # abandoned
289                  is_print=True,
290                  loop_cnt=1)                                   # abandoned
291- Toolkit2:
292
293        eval_perf(is_print=True)
294
295
296## rknn.export_rknn_precompile_model
297- Toolkit1:
298
299        export_rknn_precompile_model(export_path=None)
300- Toolkit2:
301
302        Abandoned
303
304
305## rknn.export_rknn_sync_model
306- Toolkit1:
307
308        export_rknn_sync_model(input_model=None, sync_uids=None, output_model=None)
309- Toolkit2:
310
311        Abandoned
312
313
314## rknn.register_op
315- Toolkit1:
316
317        register_op(op_path)
318- Toolkit2:
319
320        Not supported yet
321
322
323## rknn.fetch_rknn_model_config
324- Toolkit1:
325
326        fetch_rknn_model_config(model_path)
327- Toolkit2:
328
329        Not supported yet
330
331
332## rknn.list_support_target_platform
333- Toolkit1:
334
335        list_support_target_platform(rknn_model=None)
336- Toolkit2:
337
338        Not supported yet
339