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