# RKNNToolkit2 API Difference With Toolkit1 ## rknn.config - Toolkit1: config(batch_size=100, # abandoned caffe_mean_file=None, # abandoned dtype='float32', # abandoned epochs=-1, # abandoned force_gray=None, # abandoned input_fitting='scale', # abandoned input_normalization=None, # abandoned mean_file=None, # abandoned model_data_format='zone', # abandoned model_quantize=None, # abandoned optimize='Default', # abandoned quantized_dtype='asymmetric_affine-u8', quantized_moving_alpha=0.01, # abandoned quantized_algorithm='normal', quantized_divergence_nbins=1024, # abandoned mmse_epoch=3, # abandoned random_brightness=None, # abandoned random_contrast=None, # abandoned random_crop=None, # abandoned random_flip=None, # abandoned random_mirror=None, # abandoned reorder_channel=None, # abandoned restart=False, # abandoned samples=-1, # abandoned need_horizontal_merge=False, # abandoned deconv_merge=True, # abandoned conv_mul_merge=True, # abandoned quantized_hybrid=False, # abandoned output_optimize=0, # abandoned remove_tensorflow_output_permute=False, # abandoned optimization_level=3, target_platform=None, mean_values=None, std_values=None, channel_mean_value=None, # abandoned force_builtin_perm=False, # abandoned do_sparse_network=True, # abandoned merge_dequant_layer_and_output_node=False, # abandoned quantize_input_node=False, # abandoned inputs_scale_range=None) # abandoned - Toolkit2: config(mean_values=None, std_values=None, quantized_dtype='asymmetric_quantized-8', quantized_algorithm='normal', quantized_method='channel', # new target_platform=None, quant_img_RGB2BGR=False, # new float_dtype='float16', # new optimization_level=3, custom_string=None, # new remove_weight=False, # new compress_weight=False, # new inputs_yuv_fmt=None, # new single_core_mode=False) # new - In addition to the above abandoned/new items, there are other differences: quantized_dtype: toolkit1: asymmetric_affine-u8, dynamic_fixed_point-i8, dynamic_fixed_point-i16 toolkit2: asymmetric_quantized-8 quantized_algorithm: toolkit1: normal(default), mmse, kl_divergence, moving_average toolkit2: normal(default), mmse target_platform: toolkit1: rk1808, rk3399pro, rv1109, rv1126 toolkit2: rk3566, rk3568, rk3588, rk3588s, rv1103, rv1106, rk3562 and newer ## rknn.load_tensorflow - Toolkit1: load_tensorflow(tf_pb, inputs, input_size_list, outputs, predef_file=None, # abandoned mean_values=None, # abandoned std_values=None, # abandoned size_with_batch=None) # abandoned - Toolkit2: load_tensorflow(tf_pb, inputs, input_size_list, outputs) - In addition to the above abandoned items, there are other differences: inputs: toolkit1: node list (layer name) toolkit2: node list (operand name) outputs: toolkit1: node list (layer name) toolkit2: node list (operand name) ## rknn.load_caffe - Toolkit1: load_caffe(model, proto, # abandoned blobs=None) - Toolkit2: load_caffe(model, blobs=None, input_name=None) # new ## rknn.load_keras - Toolkit1: load_keras(model, convert_engine='Keras') - Toolkit2: Not supported yet! ## rknn.load_pytorch - Toolkit1: load_pytorch(model, input_size_list=None, inputs=None, # abandoned outputs=None, # abandoned convert_engine='torch') # abandoned - Toolkit2: load_pytorch(model, input_size_list) ## rknn.load_mxnet - Toolkit1: load_mxnet(symbol, params, input_size_list=None) - Toolkit2: Not supported yet! ## rknn.build - Toolkit1: build(do_quantization=True, dataset='dataset.txt', pre_compile=False, # abandoned rknn_batch_size=-1) - Toolkit2: build(do_quantization=True, dataset='dataset.txt', rknn_batch_size=-1): ## rknn.direct_build - Toolkit1: direct_build(model_input, data_input, model_quantize=None, pre_compile=False) - Toolkit2: Not supported yet! ## rknn.hybrid_quantization_step1 - Toolkit1: hybrid_quantization_step1(dataset=None) - Toolkit2: hybrid_quantization_step1(dataset=None, rknn_batch_size=-1, # new proposal=False, # new proposal_dataset_size=1) # new ## rknn.hybrid_quantization_step2 - Toolkit1: hybrid_quantization_step2(model_input, data_input, model_quantization_cfg, dataset, # abandoned pre_compile=False) # abandoned - Toolkit2: hybrid_quantization_step2(model_input, data_input, model_quantization_cfg) ## rknn.accuracy_analysis - Toolkit1: accuracy_analysis(inputs, output_dir='./snapshot', calc_qnt_error=True, # abandoned target=None, device_id=None, dump_file_type='tensor') # abandoned - Toolkit2: accuracy_analysis(inputs, output_dir='./snapshot', target=None, device_id=None) ## rknn.load_rknn - Toolkit1: load_rknn(path, load_model_in_npu=False) # abandoned - Toolkit2: load_rknn(path) ## rknn.export_rknn - Toolkit1: export_rknn(export_path) - Toolkit2: export_rknn(export_path, **kwargs) # new ## rknn.load_firmware - Toolkit1: load_firmware(fw_dir=None) - Toolkit2: Not supported yet! ## rknn.init_runtime - Toolkit1: init_runtime(target=None, target_sub_class=None, device_id=None, perf_debug=False, eval_mem=False, async_mode=False, rknn2precompile=False) # abandoned - Toolkit2: init_runtime(target=None, target_sub_class=None, device_id=None, perf_debug=False, eval_mem=False, async_mode=False) - In addition to the above abandoned items, there are other differences: target: toolkit1: None(simulator), RK3399Pro, RK1808 toolkit2: None(simulator), RK3566, RK3568, RK3588, RK3562 ## rknn.inference - Toolkit1: inference(inputs, data_type=None, # abandoned data_format=None, inputs_pass_through=None, get_frame_id=False) - Toolkit2: inference(inputs, data_format=None, inputs_pass_through=None, get_frame_id=False) ## rknn.eval_perf - Toolkit1: eval_perf(inputs=None, # abandoned data_type=None, # abandoned data_format=None, # abandoned is_print=True, loop_cnt=1) # abandoned - Toolkit2: eval_perf(is_print=True) ## rknn.export_rknn_precompile_model - Toolkit1: export_rknn_precompile_model(export_path=None) - Toolkit2: Abandoned ## rknn.export_rknn_sync_model - Toolkit1: export_rknn_sync_model(input_model=None, sync_uids=None, output_model=None) - Toolkit2: Abandoned ## rknn.register_op - Toolkit1: register_op(op_path) - Toolkit2: Not supported yet ## rknn.fetch_rknn_model_config - Toolkit1: fetch_rknn_model_config(model_path) - Toolkit2: Not supported yet ## rknn.list_support_target_platform - Toolkit1: list_support_target_platform(rknn_model=None) - Toolkit2: Not supported yet