xref: /OK3568_Linux_fs/external/rknn-toolkit2/examples/functions/hybrid_quant/step1.py (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1import numpy as np
2import cv2
3from rknn.api import RKNN
4
5if __name__ == '__main__':
6
7    # Create RKNN object
8    rknn = RKNN(verbose=True)
9
10    # Pre-process config
11    print('--> Config model')
12    rknn.config(mean_values=[127.5, 127.5, 127.5], std_values=[127.5, 127.5, 127.5])
13    print('done')
14
15    # Load model
16    print('--> Loading model')
17    ret = rknn.load_tensorflow(tf_pb='./ssd_mobilenet_v2.pb',
18                               inputs=['FeatureExtractor/MobilenetV2/MobilenetV2/input'],
19                               outputs=['concat_1', 'concat'],
20                               input_size_list=[[1,300,300,3]])
21    if ret != 0:
22        print('Load model failed!')
23        exit(ret)
24    print('done')
25
26    # Build model
27    print('--> hybrid_quantization_step1')
28    ret = rknn.hybrid_quantization_step1(dataset='./dataset.txt', proposal=False)
29    if ret != 0:
30        print('hybrid_quantization_step1 failed!')
31        exit(ret)
32    print('done')
33
34    # Tips
35    print('Please modify ssd_mobilenet_v2.quantization.cfg!')
36    print('==================================================================================================')
37    print('Modify Method: Fill the customized_quantize_layers with the output name & dtype of the custom layer.')
38    print('')
39    print('For example:')
40    print('    custom_quantize_layers:')
41    print('        FeatureExtractor/MobilenetV2/expanded_conv/depthwise/BatchNorm/batchnorm/add_1:0: float16')
42    print('        FeatureExtractor/MobilenetV2/expanded_conv/depthwise/Relu6:0: float16')
43    print('Or:')
44    print('    custom_quantize_layers: {')
45    print('        FeatureExtractor/MobilenetV2/expanded_conv/depthwise/BatchNorm/batchnorm/add_1:0: float16,')
46    print('        FeatureExtractor/MobilenetV2/expanded_conv/depthwise/Relu6:0: float16,')
47    print('    }')
48    print('==================================================================================================')
49
50    rknn.release()
51
52