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