diff --git a/README.md b/README.md old mode 100755 new mode 100644 index 025fbc2..3251358 --- a/README.md +++ b/README.md @@ -3,30 +3,32 @@ RKNN-Toolkit is a software development kit for users to perform model conversion # Download From version 1.3.0, some wheel packages are larger than 100MB, can not be uploaded directly. So, you need to go to the releases page to download. You can download from releases page: https://github.com/rockchip-linux/rknn-toolkit/releases -- All wheel packages are in compressed file: [rknn-toolkit-v1.6.1-packages.tar.gz](https://github.com/rockchip-linux/rknn-toolkit/releases/download/v1.6.1/rknn-toolkit-v1.6.1-packages.tar.gz "rknn-toolkit-v1.6.1-packages.tar.gz") or [rknn-toolkit-v1.6.1-packages.zip](https://github.com/rockchip-linux/rknn-toolkit/releases/download/v1.6.1/rknn-toolkit-v1.6.1-packages.zip "rknn-toolkit-v1.6.1-packages.zip ") -- All examples, docs and platform-tools are in compressed file: [Source code(zip)](https://github.com/rockchip-linux/rknn-toolkit/archive/v1.6.1.zip "Source code(zip)") or [Source code(tar.gz)](https://github.com/rockchip-linux/rknn-toolkit/archive/v1.6.1.tar.gz "Source code(tar.gz)") -- You can also download all packages, docker image, examples, docs and platform-tools from baidu cloud: [rknn-toolkit-v1.6.1](https://eyun.baidu.com/s/3dur3TO "rknn-toolkit-v1.6.1"), fetch code: rknn +- All wheel packages are in compressed file: [rknn-toolkit-v1.7.0-packages.tar.gz](https://github.com/rockchip-linux/rknn-toolkit/releases/download/v1.7.0/rknn-toolkit-v1.7.0-packages.tar.gz "rknn-toolkit-v1.7.0-packages.tar.gz") or [rknn-toolkit-v1.7.0-packages.zip](https://github.com/rockchip-linux/rknn-toolkit/releases/download/v1.7.0/rknn-toolkit-v1.7.0-packages.zip "rknn-toolkit-v1.7.0-packages.zip ") +- All examples, docs and platform-tools are in compressed file: [Source code(zip)](https://github.com/rockchip-linux/rknn-toolkit/archive/v1.7.0.zip "Source code(zip)") or [Source code(tar.gz)](https://github.com/rockchip-linux/rknn-toolkit/archive/v1.7.0.tar.gz "Source code(tar.gz)") +- You can also download all packages, docker image, examples, docs and platform-tools from baidu cloud: [rknn-toolkit-v1.7.0](https://eyun.baidu.com/s/3dHiqukh "rknn-toolkit-v1.7.0"), fetch code: rknn # Checksums ## MD5 ``` -4228195c18de188a41258d8f8263ebb2 rknn_toolkit-1.6.1-cp35-cp35m-linux_aarch64.whl -b58f0ad2dab1d32a9fd574b1f15cb8dc rknn_toolkit-1.6.1-cp35-cp35m-linux_x86_64.whl -dbe70e082772eb66d4f56d3d110f059d rknn_toolkit-1.6.1-cp36-cp36m-linux_x86_64.whl -0e9f8ca4a35f09ce0bc1bb7e12980365 rknn_toolkit-1.6.1-cp36-cp36m-macosx_10_15_x86_64.whl -28a680a2197dc33ca3c90a0a3f5a6420 rknn_toolkit-1.6.1-cp36-cp36m-win_amd64.whl -a7034d33a0a73176f263b9957f81ebcb rknn_toolkit-1.6.1-cp37-cp37m-linux_aarch64.whl -920654ca4bbd5ec0645a79255f8995db rknn_toolkit-1.6.1-cp37-cp37m-macosx_10_15_x86_64.whl +71d8e5a0d97ec9e28912fc7935b31e11 rknn_toolkit-1.7.0-cp35-cp35m-linux_aarch64.whl +c56e04f6d89bb2b6cc6019f4edebf7a8 rknn_toolkit-1.7.0-cp35-cp35m-linux_x86_64.whl +657e36cb314af7913d8600af0de1cebe rknn_toolkit-1.7.0-cp36-cp36m-linux_x86_64.whl +d9dec7ee804e57bc2bdc50c6ac5d6e77 rknn_toolkit-1.7.0-cp36-cp36m-macosx_10_15_x86_64.whl +84d7ea5677944a13904ca916ed266d57 rknn_toolkit-1.7.0-cp36-cp36m-win_amd64.whl +2eb612e046677c4b100f964fb2256d9d rknn_toolkit-1.7.0-cp37-cp37m-linux_aarch64.whl +c4d281cd571d93da3a70acf23807e58e rknn_toolkit-1.7.0-cp37-cp37m-macosx_10_15_x86_64.whl -70e16ae6b9dd287820787a8f338df100 rknn_toolkit_lite-1.6.1-cp35-cp35m-linux_aarch64.whl -1034de0fff4201dc3ace53fd27f4f82d rknn_toolkit_lite-1.6.1-cp35-cp35m-linux_x86_64.whl -b70bc555b00c38f2555cf7b1a3bad21c rknn_toolkit_lite-1.6.1-cp36-cp36m-linux_x86_64.whl -754ed6030c9dc7ef7ca21f983c28ec74 rknn_toolkit_lite-1.6.1-cp36-cp36m-macosx_10_15_x86_64.whl -fcb2399ffd0b436ab1c0483fa4a62038 rknn_toolkit_lite-1.6.1-cp36-cp36m-win_amd64.whl -556299ee8afc20afcef8506d57373b4a rknn_toolkit_lite-1.6.1-cp37-cp37m-linux_aarch64.whl -d723c5856f20859ee42e7fe107c580c3 rknn_toolkit_lite-1.6.1-cp37-cp37m-macosx_10_15_x86_64.whl +4e7e691d5f7de5f73a35522e376b8f27 rknn_toolkit_lite-1.7.0-cp35-cp35m-linux_aarch64.whl +843c28de3f34c3b33f1204b8c2342448 rknn_toolkit_lite-1.7.0-cp35-cp35m-linux_x86_64.whl +91ec0c1910b125225565a431cf86657b rknn_toolkit_lite-1.7.0-cp36-cp36m-linux_armv7l.whl +1d177d17275221dfe3e4922d83d24d73 rknn_toolkit_lite-1.7.0-cp36-cp36m-linux_x86_64.whl +1079e834e6c9722075972f1e75d3c4d3 rknn_toolkit_lite-1.7.0-cp36-cp36m-macosx_10_15_x86_64.whl +5d760a24089487b046c1a0b1fa43ce3c rknn_toolkit_lite-1.7.0-cp36-cp36m-win_amd64.whl +6aa35196d90c134a1918846e54ec0f48 rknn_toolkit_lite-1.7.0-cp37-cp37m-linux_aarch64.whl +e4386a4663165abffba5fa410857a0fc rknn_toolkit_lite-1.7.0-cp37-cp37m-linux_armv7l.whl +e75fefb8be1b47347dd4c3fbb8e865d8 rknn_toolkit_lite-1.7.0-cp37-cp37m-macosx_10_15_x86_64.whl -3d018c30a1985ce75de00e684fc16a5d rknn-toolkit-v1.6.1-packages.tar.gz -12a7fd1338c6f3e4d36e4dcbce905c7e rknn-toolkit-v1.6.1-packages.zip +9978056432271d1270c0360e76743ca6 rknn-toolkit-v1.7.0-packages.tar.gz +c4ee86905334c32d7856c3e9c74a7ddf rknn-toolkit-v1.7.0-packages.zip ``` # Feedback and Community Suport - QQ Group Chat: 1025468710 diff --git a/doc/RKNN_OP_Support_V1.6.1.md b/doc/RKNN_OP_Support_V1.6.1.md deleted file mode 100644 index abca05c..0000000 --- a/doc/RKNN_OP_Support_V1.6.1.md +++ /dev/null @@ -1,423 +0,0 @@ -# RKNN OP Support -Base on RKNN Toolkit Version 1.6.1 - -## Caffe OPs supported by RKNN -There are two caffe protocols RKNN Toolkit uses, one based on the officially modified protocol of berkeley, and one based on the protocol containing the LSTM layer. -The protocol based on the official revision of berkeley comes from [berkeley caffe](https://github.com/BVLC/caffe/tree/master/src/caffe/proto "Berkeley Caffe"), commit hash is 21d0608. On this basis RKNN Toolkit have added some OPs. -The protocol containing the LSTM layer refers to [warpctc caffe](https://github.com/xmfbit/warpctc-caffe/tree/master/src/caffe/proto "warpctc caffe"), commit hash is bd6181b. -Based on these protocols, the list of Caffe OPs supported by RKNN is as follows: - -| **Operators** | -|---| -|deconvolution| -|convolutiondepthwise| -|convolution| -|pooling| -|poolwithargmax| -|innerproduct| -|slice| -|concat| -|reshape| -|flatten| -|permute| -|reorg| -|reverse| -|scale| -|relu| -|leakyrelu| -|softmax| -|prelu| -|sigmoid| -|tanh| -|batchnorm| -|bn| -|normalize| -|lrn| -|resize| -|lstm| -|roipooling| -|shufflechannel| -|proposal| -|dropout| -|eltwise| -|split| -|l2normalizescale| -|absval| -|axpy| -|upsample| - -## Darknet OPs supported by RKNN -The list of Darknet OPs supported by RKNN is as follows: - -| **Operators** | -|---| -|batchnormalize| -|convolutional| -|depthwise_convolutional| -|pooling| -|fullconnect| -|leakyrelu| -|concat| -|add| -|upsampling| -|reorg| -|noop| -|route| -|region| -|shortcut| -|multiply| -|swish| -|logistic| -|mish| -|softmax| - -## Keras OPs supported by RKNN -The list of Keras OPs supported by RKNN is as follows: - -| **Operators** | -|---| -|Dense| -|Flatten| -|Reshape| -|LSTM| -|GRU| -|SimpleRNN| -|Embedding| -|BatchNormalization| -|BatchNormalizationV1| -|Conv2D| -|Activation| -|Add| -|ZeroPadding2D| -|MaxPooling2D| -|AveragePooling2D| -|GlobalAveragePooling2D| -|GlobalMaxPooling2D| -|ReLU| -|Softmax| -|LeakyReLU| -|PReLU| -|ThresholdedReLU| -|Conv1D| -|Conv2DTranspose| -|DepthwiseConv2D| -|SeparableConv2D| -|UpSampling2D| -|Dropout| -|Subtract| -|Multiply| -|Concatenate| -|Cropping2D| -|RNN| - -## MXNet OPs supported by RKNN -The MXNet version supported by RKNN Toolkit is between 1.4.0 and 1.5.1, models generated by other versions may not support. -The list of MXNet OPs supported by RKNN is as follows: - -| **Operators** | -|---| -|Pooling| -|_contrib_AdaptiveAvgPooling2D| -|Convolution| -|Deconvolution| -|FullyConnected| -|slice| -|slice_axis| -|Crop| -|Concat| -|Reshape| -|Flatten| -|transpose| -|reverse| -|elemwise_add| -|_plus_scalar| -|_minus_scalar| -|elemwise_mul| -|_mul_scalar| -|broadcast_mul| -|_div_scalar| -|relu| -|clip| -|LeakyReLU| -|leaky| -|softmax| -|SoftmaxActivation| -|prelu| -|sigmoid| -|tanh| -|BatchNorm| -|_contrib_BilinearResize2D| -|UpSampling| - -## ONNX OPs supported by RKNN -The ONNX version supported by RKNN Toolkit is 1.6.0. According to [ONNX official instructions](https://github.com/microsoft/onnxruntime/blob/master/docs/Versioning.md "ONNX Version Description"), the corresponding ONNX opset version is 11 and the corresponding onnx ir version is 6. -The list of ONNX OPs supported by RKNN is as follows: - -| **Operators** | -|---| -|AveragePool/GlobalAveragePool| -|Conv| -|ConvTranspose| -|MaxPool/GlobalMaxPool| -|Gemm| -|MatMul| -|Slice| -|Split| -|Concat| -|Reshape| -|Flatten| -|Squeeze| -|Transpose| -|DepthToSpace| -|SpaceToDetph| -|Add| -|Sum| -|Sub| -|Mul| -|Div| -|Relu| -|Relu6| -|Clip| -|LeakyRelu| -|Softmax| -|PRelu| -|Floor| -|BatchNormalization| -|LRN| -|Tanh| -|Elu| -|Sigmoid| -|Unsqueeze| -|LogSoftmax| -|Dropout| -|InstanceNormalization| -|Sqrt| -|Log| -|Cast| -|Exp| -|Identity| -|Upsample| -|ReduceMean| -|ReduceMax| -|ReduceMin| -|ReduceSum| -|Gather| -|LSTM| -|GRU| - - -## Pytorch OPs supported by RKNN -The Pytorch version supported by RKNN Toolkit is between 1.0.0 and 1.6.0, models generated by other versions may not support. -The list of Pytorch OPs supported by RKNN is as follows: - -| **Operators** | -|---| -|aten::adaptive_avg_pool2d| -|aten::add| -|aten::add_| -|aten::addmm| -|aten::arange| -|aten::avg_pool2d| -|aten::batch_norm| -|aten::cat| -|aten::chunk| -|aten::clone| -|aten::constant_pad_nd| -|aten::contiguous| -|aten::_convolution| -|aten::detach| -|aten::div| -|aten::dropout| -|aten::dropout_| -|aten::elu| -|aten::elu_| -|aten::exp| -|aten::exp_| -|aten::feature_dropout| -|aten::feature_dropout_| -|aten::flatten| -|aten::floor| -|aten::gru| -|aten::hardtanh| -|aten::hardtanh_| -|aten::layer_norm| -|aten::leaky_relu| -|aten::leaky_relu_| -|aten::log| -|aten::log_softmax| -|aten::lstm| -|aten::mm| -|aten::matmul| -|aten::max_pool2d| -|aten::max_pool2d_with_indices| -|aten::mean| -|aten::mul| -|aten::ones| -|aten::_pad_packed_sequence| -|aten::_pack_padded_sequence| -|aten::permute| -|aten::pixel_shuffle| -|aten::prelu| -|aten::relu| -|aten::relu_| -|aten::repeat| -|aten::reshape| -|aten::rsqrt| -|aten::select| -|aten::ScalarImplicit| -|aten::sigmoid| -|aten::size| -|aten::slice| -|aten::softmax| -|aten::softplus| -|aten::sqrt| -|aten::squeeze| -|aten::stack| -|aten::sub| -|aten::sum| -|aten::tanh| -|aten::threshold| -|aten::threshold_| -|aten::tile| -|aten::to| -|aten::transpose| -|aten::unsqueeze| -|aten::upsample_nearest2d| -|aten::upsample_bilinear2d| -|aten::view| -|aten::zeros| - - -## TensorFlow OPs supported by RKNN -In compliance with semantic version, saved models written with one version of TensorFlow can be loaded and evaluated with a later version of TensorFlow with the same major release. So in theory, the pb files (contain OPs belows) generated by TensorFlow before version 1.14.0 are supported by RKNN Toolkit. For more information on TensorFlow version compatibility, please refer to [tensorflow official instructions on OP version](https://www.tensorflow.org/guide/versions "Tensorflow official instructions on OP version") . -The list of TensorFlow OPs supported by RKNN is as follows: - -| **Operators** | -|---| -|tf.layers.dense| -|tf.nn.avg_pool| -|tf.nn.conv2d| -|tf.nn.conv2d_transposed| -|tf.nn.depthwise_conv2d| -|tf.nn.atrous_conv2d| -|tf.nn.max_pool| -|tf.nn.max_pool_with_argmax| -|tf.matmul| -|tf.batch_matmul| -|tf.nn.slice| -|tf.split| -|tf.nn.concat| -|tf.reshape| -|tf.layers.flatten| -|tf.squeeze| -|tf.transpose| -|tf.depth_to_space| -|tf.space_to_depth| -|tf.space_to_batch| -|tf.batch_to_space| -|tf.nn.pad| -|tf.reduce_mean| -|tf.reduce_sum| -|tf.reverse| -|tf.strided_slice| -|tf.add| -|tf.sub| -|tf.mul| -|tf.div| -|tf.less| -|tf.nn.relu| -|tf.nn.relu6| -|tf.nn.leaky_relu| -|tf.nn.softmax| -|tf.nn.sigmoid| -|tf.nn.tanh| -|tf.nn.elu| -|tf.floor| -|tf.sqrt| -|tf.rsqrt| -|tf.exp| -|tf.nn.batch_normalization| -|tf.nn.fused_batch_norm| -|tf.contrib.layers.instance_norm| -|tf.nn.l2_norm| -|tf.nn.local_response_normalization| -|tf.image.resize_bilinear| -|tf.image.resize_nearest_neighor| -|tf.keras.layers.LSTM| -|tf.keras.layers.RNN| -|tf.signal.frame| -|tf.nn.embedding_lookup| -|tf.argmax| -|tf.argmin| -|tf.reducemax| - -## TensorFlow Lite OPs supported by RKNN -RKNN Toolkit uses the TF Lite schema commits in link: -https://github.com/tensorflow/tensorflow/commits/master/tensorflow/lite/schema/schema.fbs -Commit hash: 0c4f5dfea4ceb3d7c0b46fc04828420a344f7598. -Because TF Lite schema may not compatible with each other, TF Lite models with older or newer schema may not be loaded successfully. -The list of TensorFlow Lite OPs supported by RKNN is as follows: - -| **Operators** | -|---| -|AVERAGE_POOL_2D| -|CONV_2D| -|CONV_2D_TRANSPOSE| -|DEPTHWISE_CONV_2D| -|CONV_2D| -|MAX_POOL_2D| -|L2_POOL_2D| -|FULLY_CONNECTED| -|SPLIT/SPLIT_V| -|CONCATENATION| -|RESHAPE| -|RESHAPE| -|SQUEEZE| -|TRANSPOSE| -|DEPTH_TO_SPACE| -|SPACE_TO_DEPTH| -|SPACE_TO_BATCH_ND| -|BATCH_TO_SPACE_ND| -|PAD| -|STRIDED_SLICE| -|ADD| -|SUB| -|MUL| -|DIV| -|GREATER| -|GREATER_EQUAL| -|LESS| -|LESS_EQUAL| -|NOT_EQUAL| -|POW| -|FLOOR_DIV| -|SELECT| -|RELU| -|RELU_N1_TO_1| -|RELU1| -|RELU6| -|LEAKY_RELU| -|SOFTMAX| -|PRELU| -|LOGISTIC| -|TANH| -|FLOOR| -|SQRT| -|RSQRT| -|LOG_SOFTMAX| -|NEG| -|L2_NORMALIZATION| -|LOCAL_RESPONSE_NORMALIZATION| -|RESIZE_BILINEAR| -|RESIZE_NEAREST_NEIGHBOR| -|LSTM| -|DEQUANTIZE| -|SVDF| -|REDUCE_MAX| -|REDUCE_MIN| -|ARG_MAX| -|ARG_MIN| -|GATHER| -|TILE| -|UNIDIRECTIONAL_SEQUENCE_LSTM| -|UNPACK| diff --git a/doc/RKNN_OP_Support_V1.7.0.md b/doc/RKNN_OP_Support_V1.7.0.md new file mode 100644 index 0000000..ae2b443 --- /dev/null +++ b/doc/RKNN_OP_Support_V1.7.0.md @@ -0,0 +1,438 @@ +# RKNN OP Support +Base on RKNN Toolkit Version 1.7.0 + +## Caffe OPs supported by RKNN +There are two caffe protocols RKNN Toolkit uses, one based on the officially modified protocol of berkeley, and one based on the protocol containing the LSTM layer. +The protocol based on the official revision of berkeley comes from [berkeley caffe](https://github.com/BVLC/caffe/tree/master/src/caffe/proto "Berkeley Caffe"), commit hash is 21d0608. On this basis RKNN Toolkit have added some OPs. +The protocol containing the LSTM layer refers to [warpctc caffe](https://github.com/xmfbit/warpctc-caffe/tree/master/src/caffe/proto "warpctc caffe"), commit hash is bd6181b. +Based on these protocols, the list of Caffe OPs supported by RKNN is as follows: + +| **Operators** | +|---| +| absval | +| axpy | +| batchnorm | +| bn | +| concat | +| convolution | +| convolutiondepthwise | +| deconvolution | +| dropout | +| eltwise | +| flatten | +| innerproduct | +| l2normalizescale | +| leakyrelu | +| lrn | +| lstm | +| normalize | +| permute | +| pooling | +| poolwithargmax | +| prelu | +| proposal | +| relu | +| reorg | +| reshape | +| resize | +| reverse | +| roipooling | +| scale | +| shufflechannel | +| sigmoid | +| slice | +| softmax | +| split | +| tanh | +| upsample | + +## Darknet OPs supported by RKNN +The list of Darknet OPs supported by RKNN is as follows: + +| **Operators** | +|---| +| add | +| batchnormalize | +| concat | +| convolutional | +| depthwise_convolutional | +| fullconnect | +| leakyrelu | +| logistic | +| mish | +| multiply | +| noop | +| pooling | +| region | +| reorg | +| route | +| shortcut | +| softmax | +| swish | +| upsampling | + +## Keras OPs supported by RKNN +The list of Keras OPs supported by RKNN is as follows: + +| **Operators** | +|---| +| Activation | +| Add | +| AveragePooling2D | +| BatchNormalization | +| BatchNormalizationV1 | +| Concatenate | +| Conv1D | +| Conv2D | +| Conv2DTranspose | +| Cropping2D | +| Dense | +| DepthwiseConv2D | +| Dropout | +| Embedding | +| Flatten | +| GlobalAveragePooling2D | +| GlobalMaxPooling2D | +| GRU | +| LeakyReLU | +| LSTM | +| MaxPooling2D | +| Multiply | +| PReLU | +| ReLU | +| Reshape | +| RNN | +| SeparableConv2D | +| SimpleRNN | +| Softmax | +| Subtract | +| ThresholdedReLU | +| UpSampling2D | +| ZeroPadding2D | + +## MXNet OPs supported by RKNN +The MXNet version supported by RKNN Toolkit is between 1.4.0 and 1.5.1, models generated by other versions may not support. +The list of MXNet OPs supported by RKNN is as follows: + +| **Operators** | +|---| +| _contrib_AdaptiveAvgPooling2D | +| _contrib_BilinearResize2D | +| _div_scalar | +| _minus_scalar | +| _mul_scalar | +| _plus_scalar | +| BatchNorm | +| broadcast_mul | +| clip | +| Concat | +| Convolution | +| Crop | +| Deconvolution | +| elemwise_add | +| elemwise_mul | +| Flatten | +| FullyConnected | +| leaky | +| LeakyReLU | +| Pooling | +| prelu | +| relu | +| Reshape | +| reverse | +| sigmoid | +| slice | +| slice_axis | +| softmax | +| SoftmaxActivation | +| tanh | +| transpose | +| UpSampling | + +## ONNX OPs supported by RKNN +The ONNX version supported by RKNN Toolkit is 1.6.0. According to [ONNX official instructions](https://github.com/microsoft/onnxruntime/blob/master/docs/Versioning.md "ONNX Version Description"), the corresponding ONNX opset version is 11 and the corresponding onnx ir version is 6. And quantize ops get by onnxruntime version 1.5.2. +The list of ONNX OPs supported by RKNN is as follows: + +| **Operators** | +|---| +| Add (Float / Quantize) | +| AveragePool/GlobalAveragePool | +| BatchNormalization | +| Cast | +| Clip | +| Concat | +| Conv (Float / Quantize) | +| ConvTranspose | +| DepthToSpace | +| Dequantizelinear | +| Div | +| Dropout | +| Elu | +| Exp | +| Expand | +| Flatten | +| Floor | +| Gather | +| Gemm | +| GlobalMaxPool | +| GRU | +| Hardswish | +| Identity | +| InstanceNormalization | +| LeakyRelu (Float / Quantize) | +| Log | +| LogSoftmax | +| LRN | +| LSTM | +| MatMul (Float / Quantize) | +| MaxPool (Float / Quantize) | +| Mul (Float / Quantize) | +| PRelu | +| Quantizelinear | +| Reciprocal | +| ReduceMax | +| ReduceMean | +| ReduceMin | +| ReduceSum | +| Relu (Float / Quantize) | +| Relu6 | +| Reshape | +| Resize | +| Sigmoid (Float / Quantize) | +| Slice | +| Softmax | +| SpaceToDetph | +| Split | +| Sqrt | +| Squeeze | +| Sub | +| Sum | +| Tanh | +| Transpose | +| Unsqueeze | +| Upsample | + + +## PyTorch OPs supported by RKNN +The PyTorch version supported by RKNN Toolkit is between 1.0.0 and 1.6.0, models generated by other versions may not support. +The list of PyTorch OPs supported by RKNN is as follows: + +| **Operators** | +|---| +|aten::adaptive_avg_pool2d| +|aten::add| +|aten::add_| +|aten::addmm| +|aten::arange| +|aten::argmax| +|aten::argmin| +|aten::avg_pool2d| +|aten::batch_norm| +|aten::cat| +|aten::chunk| +|aten::clone| +|aten::constant_pad_nd| +|aten::contiguous| +|aten::_convolution| +|aten::detach| +|aten::div| +|aten::dropout| +|aten::dropout_| +|aten::elu| +|aten::elu_| +|aten::exp| +|aten::exp_| +|aten::feature_dropout| +|aten::feature_dropout_| +|aten::flatten| +|aten::floor| +|aten::floor_divide| +|aten::gru| +|aten::hardtanh| +|aten::hardtanh_| +|aten::layer_norm| +|aten::leaky_relu| +|aten::leaky_relu_| +|aten::log| +|aten::log_softmax| +|aten::lstm| +|aten::mm| +|aten::matmul| +|aten::max_pool2d| +|aten::max_pool2d_with_indices| +|aten::mean| +|aten::mul| +|aten::ones| +|aten::_pad_packed_sequence| +|aten::_pack_padded_sequence| +|aten::permute| +|aten::pixel_shuffle| +|aten::prelu| +|aten::relu| +|aten::relu_| +|aten::repeat| +|aten::reshape| +|aten::rsqrt| +|aten::select| +|aten::ScalarImplicit| +|aten::sigmoid| +|aten::size| +|aten::slice| +|aten::softmax| +|aten::softplus| +|aten::split| +|aten::split_with_sizes| +|aten::sqrt| +|aten::squeeze| +|aten::stack| +|aten::sub| +|aten::sum| +|aten::tanh| +|aten::threshold| +|aten::threshold_| +|aten::tile| +|aten::to| +|aten::transpose| +|aten::unsqueeze| +|aten::upsample_nearest2d| +|aten::upsample_bilinear2d| +|aten::view| +|aten::zeros| + + +## TensorFlow OPs supported by RKNN +In compliance with semantic version, saved models written with one version of TensorFlow can be loaded and evaluated with a later version of TensorFlow with the same major release. So in theory, the pb files (contain OPs belows) generated by TensorFlow before version 1.14.0 are supported by RKNN Toolkit. For more information on TensorFlow version compatibility, please refer to [tensorflow official instructions on OP version](https://www.tensorflow.org/guide/versions "Tensorflow official instructions on OP version") . +The list of TensorFlow OPs supported by RKNN is as follows: + +| **Operators** | +|---| +| tf.add | +| tf.argmax | +| tf.argmin | +| tf.batch_matmul | +| tf.batch_to_space | +| tf.contrib.layers.instance_norm | +| tf.depth_to_space | +| tf.div | +| tf.exp | +| tf.floor | +| tf.image.resize_bilinear | +| tf.image.resize_nearest_neighor | +| tf.keras.layers.LSTM | +| tf.keras.layers.RNN | +| tf.layers.dense | +| tf.layers.flatten | +| tf.less | +| tf.l2_normalize | +| tf.matmul | +| tf.mirrorPad | +| tf.mul | +| tf.nn.atrous_conv2d | +| tf.nn.avg_pool | +| tf.nn.batch_normalization | +| tf.nn.concat | +| tf.nn.conv2d | +| tf.nn.conv2d_transposed | +| tf.nn.depthwise_conv2d | +| tf.nn.elu | +| tf.nn.embedding_lookup | +| tf.nn.fused_batch_norm | +| tf.nn.l2_norm | +| tf.nn.leaky_relu | +| tf.nn.local_response_normalization | +| tf.nn.max_pool | +| tf.nn.max_pool_with_argmax | +| tf.nn.pad | +| tf.nn.relu | +| tf.nn.relu6 | +| tf.nn.sigmoid | +| tf.nn.slice | +| tf.nn.softmax | +| tf.nn.tanh | +| tf.reduce_mean | +| tf.reduce_sum | +| tf.reducemax | +| tf.reshape | +| tf.reverse | +| tf.rsqrt | +| tf.signal.frame | +| tf.space_to_batch | +| tf.space_to_depth | +| tf.split | +| tf.sqrt | +| tf.squeeze | +| tf.strided_slice | +| tf.sub | +| tf.transpose | + +## TensorFlow Lite OPs supported by RKNN +RKNN Toolkit uses the TF Lite schema commits in link: +https://github.com/tensorflow/tensorflow/commits/master/tensorflow/lite/schema/schema.fbs +Commit hash: 0c4f5dfea4ceb3d7c0b46fc04828420a344f7598. +Because TF Lite schema may not compatible with each other, TF Lite models with older or newer schema may not be loaded successfully. +The list of TensorFlow Lite OPs supported by RKNN is as follows: + +| **Operators** | +|---| +| ADD | +| ARG_MAX | +| ARG_MIN | +| AVERAGE_POOL_2D | +| BATCH_TO_SPACE_ND | +| CONCATENATION | +| CONV_2D | +| CONV_2D_TRANSPOSE | +| DEPTH_TO_SPACE | +| DEPTHWISE_CONV_2D | +| DEQUANTIZE | +| DIV | +| FLOOR | +| FLOOR_DIV | +| FULLY_CONNECTED | +| GATHER | +| GREATER | +| GREATER_EQUAL | +| L2_NORMALIZATION | +| L2_POOL_2D | +| LEAKY_RELU | +| LESS | +| LESS_EQUAL | +| LOCAL_RESPONSE_NORMALIZATION | +| LOG_SOFTMAX | +| LOGISTIC | +| LSTM | +| MAX_POOL_2D | +| MIRROR_PAD | +| MUL | +| NEG | +| NOT_EQUAL | +| PAD | +| POW | +| PRELU | +| REDUCE_MAX | +| REDUCE_MIN | +| RELU | +| RELU_N1_TO_1 | +| RELU1 | +| RELU6 | +| RESHAPE | +| RESHAPE | +| RESIZE_BILINEAR | +| RESIZE_NEAREST_NEIGHBOR | +| RSQRT | +| SELECT | +| SOFTMAX | +| SPACE_TO_BATCH_ND | +| SPACE_TO_DEPTH | +| SPLIT/SPLIT_V | +| SQRT | +| SQUEEZE | +| STRIDED_SLICE | +| SUB | +| SUM | +| SVDF | +| TANH | +| TILE | +| TRANSPOSE | +| UNIDIRECTIONAL_SEQUENCE_LSTM | +| UNPACK | diff --git a/doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.6.1_CN.pdf b/doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.7.0_CN.pdf similarity index 74% rename from doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.6.1_CN.pdf rename to doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.7.0_CN.pdf index 01da0ba..9d38258 100644 Binary files a/doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.6.1_CN.pdf and b/doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.7.0_CN.pdf differ diff --git a/doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.6.1_EN.pdf b/doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.7.0_EN.pdf similarity index 52% rename from doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.6.1_EN.pdf rename to doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.7.0_EN.pdf index b483ae7..4dfa66f 100644 Binary files a/doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.6.1_EN.pdf and b/doc/Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.7.0_EN.pdf differ diff --git a/doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.6.1_CN.pdf b/doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.6.1_CN.pdf deleted file mode 100644 index 32ebd34..0000000 Binary files a/doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.6.1_CN.pdf and /dev/null differ diff --git a/doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.7.0_CN.pdf b/doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.7.0_CN.pdf new file mode 100644 index 0000000..81af054 Binary files /dev/null and b/doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.7.0_CN.pdf differ diff --git a/doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.6.1_EN.pdf b/doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.7.0_EN.pdf similarity index 57% rename from doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.6.1_EN.pdf rename to doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.7.0_EN.pdf index a855f75..178b738 100644 Binary files a/doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.6.1_EN.pdf and b/doc/Rockchip_Quick_Start_RKNN_Toolkit_V1.7.0_EN.pdf differ diff --git a/doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.6.1_CN.pdf b/doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.7.0_CN.pdf similarity index 73% rename from doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.6.1_CN.pdf rename to doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.7.0_CN.pdf index e3ee9c3..a4851eb 100644 Binary files a/doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.6.1_CN.pdf and b/doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.7.0_CN.pdf differ diff --git a/doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.6.1_EN.pdf b/doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.7.0_EN.pdf similarity index 76% rename from doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.6.1_EN.pdf rename to doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.7.0_EN.pdf index bf2f359..8af3fbf 100644 Binary files a/doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.6.1_EN.pdf and b/doc/Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.7.0_EN.pdf differ diff --git a/doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.6.1_CN.pdf b/doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.7.0_CN.pdf similarity index 52% rename from doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.6.1_CN.pdf rename to doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.7.0_CN.pdf index d8d7141..52c2800 100644 Binary files a/doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.6.1_CN.pdf and b/doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.7.0_CN.pdf differ diff --git a/doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.6.1_EN.pdf b/doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.7.0_EN.pdf similarity index 67% rename from doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.6.1_EN.pdf rename to doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.7.0_EN.pdf index 61b0921..c66e814 100644 Binary files a/doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.6.1_EN.pdf and b/doc/Rockchip_User_Guide_RKNN_Toolkit_Lite_V1.7.0_EN.pdf differ diff --git a/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.6.1_CN.pdf b/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.6.1_CN.pdf deleted file mode 100644 index 162f3c4..0000000 Binary files a/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.6.1_CN.pdf and /dev/null differ diff --git a/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.6.1_EN.pdf b/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.6.1_EN.pdf deleted file mode 100644 index ff8fe65..0000000 Binary files a/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.6.1_EN.pdf and /dev/null differ diff --git a/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.7.0_CN.pdf b/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.7.0_CN.pdf new file mode 100644 index 0000000..a66d993 Binary files /dev/null and b/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.7.0_CN.pdf differ diff --git a/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.7.0_EN.pdf b/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.7.0_EN.pdf new file mode 100644 index 0000000..2441259 Binary files /dev/null and b/doc/Rockchip_User_Guide_RKNN_Toolkit_V1.7.0_EN.pdf differ diff --git a/doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.6.1_CN.pdf b/doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.7.0_CN.pdf similarity index 82% rename from doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.6.1_CN.pdf rename to doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.7.0_CN.pdf index ed73479..efe87e2 100644 Binary files a/doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.6.1_CN.pdf and b/doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.7.0_CN.pdf differ diff --git a/doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.6.1_EN.pdf b/doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.7.0_EN.pdf similarity index 79% rename from doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.6.1_EN.pdf rename to doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.7.0_EN.pdf index 4a65250..88d7b67 100644 Binary files a/doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.6.1_EN.pdf and b/doc/Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.7.0_EN.pdf differ diff --git a/doc/changelog.txt b/doc/changelog.txt index ac625ce..00c896e 100644 --- a/doc/changelog.txt +++ b/doc/changelog.txt @@ -1,6 +1,28 @@ +2021-08-09 +版本:v1.7.0 +1. 新功能: + 1.1 支持 ONNX 量化模型(对应onnxruntime版本为1.5.2); + 1.2 RKNN_Toolkit Lite 支持 ARM 32bit 平台。 +2. 功能优化: + 2.1 优化量化接口的计算耗时; + 2.2 完善混合量化接口; + 2.3 完善MMSE量化参数优化算法; + 2.4 完善精度分析接口; + 2.5 完善可视化界面接口,支持显示网络层名称。 +3. 完善各框架op的支持 + 3.1 Caffe:增加 DepthwiseConv op的支持。 + 3.2 ONNX:支持指定输入输出节点;完善 matmul, add, multiply, instance_normalization 等op的支持;增加对动态卷积的支持。 + 3.3 Pytorch:增加 aten::split, aten::split_with_sizes, aten::lstm, aten::argmin, aten::argmax 等op的支持;完善 aten::convolution(2D) 的支持,支持动态卷积。不再支持 pytorch 1.2.0版本。 + 3.4 TensorFlow:完善 tf.nn.conv2d 的支持,支持动态卷积。 + 3.5 RKNN:完善 reshape, broadcast, SiLU 等op的支持。 +4. 增加推理接口pass_through参数的示例;增加精度分析接口使用示例;增加yolov5示例;优化 yolov3 示例。 +5. 修复已知bug。 + 2021-05-17 版本:v1.6.1 -1. 新功能:增加量化参数优化方法MMSE;支持导出每一层weight / bias和输出数据的分布直方图,用于分析精度问题。 +1. 新功能: + 1.1 增加量化参数优化方法MMSE; + 1.2 支持导出每一层weight / bias和输出数据的分布直方图,用于分析精度问题。 2. 功能优化:完善mean_values / std_values设置不当时的提示信息。 3. 完善对各框架OP的支持 Caffe: 完善对Crop, Eltwise, Roipooling等op的支持; @@ -26,7 +48,7 @@ 2.2 优化RKNN模型预处理,提高模型推理性能; 2.3 优化性能分析功能,打印详情时,精简每层OP; 2.4 模型分段功能限制在RK1806/RK1808/RV1109/RV1126芯片范围; - 2.5 Docker镜像系统升级为Ubuntu 18.04,Python升级到3.6。 + 2.5 docker镜像系统升级为Ubuntu 18.04,Python升级到3.6。 3. 完善对各框架OP的支持。 4. 修复已知问题。 @@ -42,11 +64,11 @@ 2.3 可视化完善对多输入的支持,增加对RK1806/RV1109/RV1126的支持; 2.4 精度分析功能增加非归一化的余弦距离和欧式距离。 3. 完善对各框架OP的支持: - TensorFlow:增加对dense子图的支持; - TFLite:增加对split_v的支持;完善对pad的支持; - ONNX:完善对prelu / deconvolution / avg_pool / clip的支持; - Pytorch:增加对pixel_shuffle, unsqueeze, sum,select, hardtanh, elu, slice, squeeze, exp,relu6, threshold_, matmul, exp, pad的支持;完善对adaptive_avg_pool2d, upsample_bilinear, relu6的支持; - MXNet:完善对fc的支持; + TensorFlow:增加对dense子图的支持。 + TFLite:增加对split_v的支持;完善对pad的支持。 + ONNX:完善对prelu / deconvolution / avg_pool / clip的支持。 + Pytorch:增加对pixel_shuffle, unsqueeze, sum,select, hardtanh, elu, slice, squeeze, exp,relu6, threshold_, matmul, exp, pad的支持;完善对adaptive_avg_pool2d, upsample_bilinear, relu6的支持。 + MXNet:完善对fc的支持。 Darknet: 增加对mish的支持;完善对route的支持。 4. 修复已知bug。 @@ -54,7 +76,7 @@ 版本:v1.3.2 1. 增加对RV1109、RV1126的支持。 2. 完善eval_perf功能,不再需要填输入参数。 -3. 完善对各框架OP的支持: +3. 完善对各框架OP支持: TensorFlow增加对reducemax的支持;完善对dilated convolution的支持。 TFLite增加对dilated convolution的支持。 Caffe增加对CRNN的支持。 diff --git a/examples/common_function_demos/accuracy_analysis/README.md b/examples/common_function_demos/accuracy_analysis/README.md new file mode 100644 index 0000000..9f96cbf --- /dev/null +++ b/examples/common_function_demos/accuracy_analysis/README.md @@ -0,0 +1,107 @@ +## RKNN-Toolkit accuracy_analysis 例程 + +#### 一.使用说明 + +​ 本例程以 shufflenetv2.onnx 模型作为示范,展示 RKNN-Toolkit 精度分析 accuracy_analysis 接口的使用流程,在常规量化模式效果有限的情况下,使用混合量化 hybrid_quantization 接口,提高 RKNN 模型的最终推理精度。实际使用时,请根据具体需求,在推理精度与推理速度的之间作一定的取舍。 + + + +#### 二.使用步骤 + +1. 生成常规量化模型,并生成精度分析报告。 + + `python normal_quantizition.py` + + - 执行后在该工程目录下可得到 normal_quantization_analysis 的文件夹,各文件/目录的含义参考 《Rockchip_User_Guide_RKNN_Toolkit_CN.docx》的 3.5.3小节说明。 + + - 这里我们生成文件夹中 individual_qnt_error_analysis.txt 文件,可以看到Conv_418_152、Conv_434_142、Conv_530_69 网络层的 cosine_norm 值分别为0.972651、0.989210、0.963591,我们就判断这几个网络层对量化不友好,需要我们使用混合量化去处理这些网络层。而其他网络层的 cosine_norm 值都在0.99以上,通常可以认为是量化友好的。我们先记录下这些网络层的名称,供后续步骤使用。 + + + +2. 执行混合量化步骤一,生成配置文件,具体资料可参考《Rockchip_User_Guide_RKNN_Toolkit_CN.docx》的 3.3 节 和 3.7.11小节。 + + `python hybrid_quantization_step1.py` + + - 打开生成的 torchjitexport.quantization.cfg 配置文件,参考 《Rockchip_User_Guide_RKNN_Toolkit_CN.docx》3.3 节 的说明,我们就可以在 customized_quantize_layers 信息里面添加我们想要使用混合量化处理的网络层(从步骤1中得到)。 + + - 配置文件中的 customized_quantize_layers 会给初始混合量化层的建议,这个建议的效果不一定是最优的,实际使用过程中请根据具体模型灵活设置。示例模型生成的 quantization.cfg 混合量化建议为: + + ``` + customized_quantize_layers: + Reshape_614_2: dynamic_fixed_point-i16 + Gemm_615_1: dynamic_fixed_point-i16 + AveragePool_612_3: dynamic_fixed_point-i16 + Reshape_614_2_acuity_mark_perm_213: dynamic_fixed_point-i16 + Conv_434_142: dynamic_fixed_point-i16 + Conv_436_133: dynamic_fixed_point-i16 + Slice_363_204: dynamic_fixed_point-i16 + Conv_364_201: dynamic_fixed_point-i16 + Conv_530_69: dynamic_fixed_point-i16 + Conv_466_118: dynamic_fixed_point-i16 + Conv_418_152: dynamic_fixed_point-i16 + Conv_383_181: dynamic_fixed_point-i16 + Conv_367_193: dynamic_fixed_point-i16 + Conv_345_195: dynamic_fixed_point-i16 + Conv_353_196: dynamic_fixed_point-i16 + Conv_343_202: dynamic_fixed_point-i16 + Conv_348_209: dynamic_fixed_point-i16 + ``` + + 这里我们按照步骤一的观察结果,修改为: + + ``` + customized_quantize_layers: + Conv_434_142: dynamic_fixed_point-i16 + Conv_530_69: dynamic_fixed_point-i16 + Conv_418_152: dynamic_fixed_point-i16 + ``` + + + +3. 执行混合量化步骤二,生成混合量化模型。 + + `python hybrid_quantization_step2.py` + + + +4. 对比原模型、常规量化模型和混合量化模型的分类结果得分。 + + `python run_onnx_model.py` + + ``` + -----TOP 5----- + [155]: 0.9758387804031372 + [154]: 0.02226063795387745 + [364]: 0.00038293670513667166 + [960]: 0.00022784945031162351 + [879]: 0.0001287872582906857 + ``` + + + + `python run_normal_quantization_model.py` + + ``` + -----TOP 5----- + [155]: 0.8933969140052795 + [154]: 0.08192264288663864 + [364]: 0.0026254409458488226 + [193]: 0.00216865842230618 + [879]: 0.0014796829782426357 + ``` + + + + `python run_hybrid_quantization_model.py` + + ``` + -----TOP 5----- + [155]: 0.9505037665367126 + [154]: 0.04464513808488846 + [364]: 0.0006053716060705483 + [194]: 0.0005000471719540656 + [879]: 0.0003411838551983237 + ``` + + 可以看到混合量化模型的分类得分得到了不小的提升,更接近于原始模型的分类得分。这里用户也可以自己尝试使用默认推荐配置进行混合量化时,混合量化模型的得分效果。 + diff --git a/examples/common_function_demos/accuracy_analysis/dataset.txt b/examples/common_function_demos/accuracy_analysis/dataset.txt new file mode 100644 index 0000000..9078c68 --- /dev/null +++ b/examples/common_function_demos/accuracy_analysis/dataset.txt @@ -0,0 +1 @@ +dog_224x224.jpg diff --git a/examples/common_function_demos/accuracy_analysis/dog_224x224.jpg b/examples/common_function_demos/accuracy_analysis/dog_224x224.jpg new file mode 100644 index 0000000..4f46457 Binary files /dev/null and b/examples/common_function_demos/accuracy_analysis/dog_224x224.jpg differ diff --git a/examples/common_function_demos/accuracy_analysis/hybrid_quantization_step1.py b/examples/common_function_demos/accuracy_analysis/hybrid_quantization_step1.py new file mode 100644 index 0000000..f844b67 --- /dev/null +++ b/examples/common_function_demos/accuracy_analysis/hybrid_quantization_step1.py @@ -0,0 +1,47 @@ +from rknn.api import RKNN + +ONNX_MODEL = 'shufflenetv2_x1.onnx' + +if __name__ == '__main__': + + # Create RKNN object + rknn = RKNN() + + # model config + print('--> Config model') + rknn.config(mean_values=[[123.68, 116.28, 103.53]], std_values=[[57.38, 57.38, 57.38]], reorder_channel='0 1 2') + print('done') + + # Load onnx model + print('--> Loading model') + ret = rknn.load_onnx(model=ONNX_MODEL) + if ret != 0: + print('Load model failed!') + exit(ret) + print('done') + + # Hybrid quantization step1 + print('--> hybrid_quantization_step1') + ret = rknn.hybrid_quantization_step1(dataset='./dataset.txt') + if ret != 0: + print('hybrid_quantization_step1 failed!') + exit(ret) + print('done') + + # Tips + print('Please modify shufflenetv2_x1.quantization.cfg!') + print('==================================================================================================') + print('Modify method:') + print('Add {layer_name}: {quantized_dtype} to dict of customized_quantize_layers') + print('If no layer changed, please set {} as empty directory for customized_quantize_layers') + print('==================================================================================================') + print('Notes:') + print('1. The layer_name comes from quantize_parameters, please strip \'@\' and \':xxx\';') + print(' If layer_name contains special characters, please quote the layer name.') + print('2. Support quantized_type: asymmetric_affine-u8, dynamic_fixed_point-i8, dynamic_fixed_point-i16, float32.') + print('3. Please fill in according to the grammatical rules of yaml.') + print('4. For this model, RKNN Toolkit has provided the corresponding configuration, please directly proceed to step2.') + print('==================================================================================================') + + rknn.release() + diff --git a/examples/common_function_demos/accuracy_analysis/hybrid_quantization_step2.py b/examples/common_function_demos/accuracy_analysis/hybrid_quantization_step2.py new file mode 100644 index 0000000..f17e78d --- /dev/null +++ b/examples/common_function_demos/accuracy_analysis/hybrid_quantization_step2.py @@ -0,0 +1,33 @@ +from rknn.api import RKNN + +if __name__ == '__main__': + + # Create RKNN object + rknn = RKNN() + + # Set model config + print('--> config model') + rknn.config(mean_values=[[123.68, 116.28, 103.53]], std_values=[[57.38, 57.38, 57.38]], reorder_channel='0 1 2') + print('done') + + # Hybrid quantization step2 + print('--> hybrid_quantization_step2') + ret = rknn.hybrid_quantization_step2(model_input='./torchjitexport.json', + data_input='./torchjitexport.data', + model_quantization_cfg='./torchjitexport.quantization.cfg', + dataset='./dataset.txt') + if ret != 0: + print('hybrid_quantization_step2 failed!') + exit(ret) + print('done') + + # Export RKNN model + print('--> Export RKNN model') + ret = rknn.export_rknn('./shufflenet_hybrid_quant.rknn') + if ret != 0: + print('Export RKNN model failed!') + exit(ret) + print('done') + + rknn.release() + diff --git a/examples/common_function_demos/accuracy_analysis/normal_quantization.py b/examples/common_function_demos/accuracy_analysis/normal_quantization.py new file mode 100644 index 0000000..89b5ad6 --- /dev/null +++ b/examples/common_function_demos/accuracy_analysis/normal_quantization.py @@ -0,0 +1,66 @@ +import numpy as np +from rknn.api import RKNN + +ONNX_MODEL = 'shufflenetv2_x1.onnx' +RKNN_MODEL = 'shufflenetv2_x1.rknn' + + +def show_outputs(outputs): + output = outputs[0][0] + output_sorted = sorted(output, reverse=True) + top5_str = 'shufflnetv2_x1\n-----TOP 5-----\n' + for i in range(5): + value = output_sorted[i] + index = np.where(output == value) + for j in range(len(index)): + if (i + j) >= 5: + break + if value > 0: + topi = '{}: {}\n'.format(index[j], value) + else: + topi = '-1: 0.0\n' + top5_str += topi + print(top5_str) + + +if __name__ == '__main__': + + # Create RKNN object + rknn = RKNN() + + # pre-process config + print('--> Config model') + rknn.config(mean_values=[[123.68, 116.28, 103.53]], std_values=[[57.38, 57.38, 57.38]], reorder_channel='0 1 2') + print('done') + + # Load ONNX model + print('--> Loading model') + ret = rknn.load_onnx(model=ONNX_MODEL) + if ret != 0: + print('Load shufflnetv2_x1 failed!') + exit(ret) + print('done') + + # Build model + print('--> Building model') + ret = rknn.build(do_quantization=True, dataset='./dataset.txt') + if ret != 0: + print('Build shufflnetv2_x1 failed!') + exit(ret) + print('done') + + # Export RKNN model + print('--> Export RKNN model') + ret = rknn.export_rknn(RKNN_MODEL) + if ret != 0: + print('Export shufflnetv2_x1.rknn failed!') + exit(ret) + print('done') + + # Accuracy analysis + print('--> Accuracy analysis') + rknn.accuracy_analysis(inputs='./dataset.txt', output_dir='./normal_quantization_analysis') + print('done') + + rknn.release() + diff --git a/examples/common_function_demos/accuracy_analysis/run_hybrid_quantization_model.py b/examples/common_function_demos/accuracy_analysis/run_hybrid_quantization_model.py new file mode 100644 index 0000000..5f4c969 --- /dev/null +++ b/examples/common_function_demos/accuracy_analysis/run_hybrid_quantization_model.py @@ -0,0 +1,58 @@ +import numpy as np +import cv2 +from rknn.api import RKNN + + +def show_outputs(output): + output_sorted = sorted(output, reverse=True) + top5_str = '\n-----TOP 5-----\n' + for i in range(5): + value = output_sorted[i] + index = np.where(output == value) + for j in range(len(index)): + if (i + j) >= 5: + break + if value > 0: + topi = '{}: {}\n'.format(index[j], value) + else: + topi = '-1: 0.0\n' + top5_str += topi + print(top5_str) + + +def softmax(x): + return np.exp(x)/sum(np.exp(x)) + + +if __name__ == '__main__': + + # Create RKNN object + rknn = RKNN() + + # Load RKNN model + print('--> Load RKNN model') + ret = rknn.load_rknn('./shufflenet_hybrid_quant.rknn') + if ret != 0: + print('Load shufflenet_hybrid_quant.rknn failed!') + exit(ret) + print('done') + + # Set inputs + img = cv2.imread('./dog_224x224.jpg') + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + + # init runtime environment + print('--> Init runtime environment') + ret = rknn.init_runtime() + if ret != 0: + print('Init runtime environment failed') + exit(ret) + print('done') + + # Inference + print('--> Running model') + outputs = rknn.inference(inputs=[img]) + show_outputs(softmax(np.array(outputs[0][0]))) + print('done') + + rknn.release() diff --git a/examples/common_function_demos/accuracy_analysis/run_normal_quantization_model.py b/examples/common_function_demos/accuracy_analysis/run_normal_quantization_model.py new file mode 100644 index 0000000..dc687c5 --- /dev/null +++ b/examples/common_function_demos/accuracy_analysis/run_normal_quantization_model.py @@ -0,0 +1,58 @@ +import numpy as np +import cv2 +from rknn.api import RKNN + + +def show_outputs(output): + output_sorted = sorted(output, reverse=True) + top5_str = '\n-----TOP 5-----\n' + for i in range(5): + value = output_sorted[i] + index = np.where(output == value) + for j in range(len(index)): + if (i + j) >= 5: + break + if value > 0: + topi = '{}: {}\n'.format(index[j], value) + else: + topi = '-1: 0.0\n' + top5_str += topi + print(top5_str) + + +def softmax(x): + return np.exp(x)/sum(np.exp(x)) + + +if __name__ == '__main__': + + # Create RKNN object + rknn = RKNN() + + # Load RKNN model + print('--> Load RKNN model') + ret = rknn.load_rknn('./shufflenetv2_x1.rknn') + if ret != 0: + print('Load shufflenetv2_x1.rknn failed!') + exit(ret) + print('done') + + # Set inputs + img = cv2.imread('./dog_224x224.jpg') + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + + # init runtime environment + print('--> Init runtime environment') + ret = rknn.init_runtime() + if ret != 0: + print('Init runtime environment failed') + exit(ret) + print('done') + + # Inference + print('--> Running model') + outputs = rknn.inference(inputs=[img]) + show_outputs(softmax(np.array(outputs[0][0]))) + print('done') + + rknn.release() diff --git a/examples/common_function_demos/accuracy_analysis/run_onnx_model.py b/examples/common_function_demos/accuracy_analysis/run_onnx_model.py new file mode 100644 index 0000000..43cff09 --- /dev/null +++ b/examples/common_function_demos/accuracy_analysis/run_onnx_model.py @@ -0,0 +1,51 @@ +import cv2 +import numpy as np +import onnxruntime as rt + +def softmax(x): + return np.exp(x)/sum(np.exp(x)) + +def show_outputs(outputs): + output = outputs + output_sorted = sorted(output, reverse=True) + top5_str = 'shufflnetv2_x1\n-----TOP 5-----\n' + for i in range(5): + value = output_sorted[i] + index = np.where(output == value) + for j in range(len(index)): + if (i + j) >= 5: + break + if value > 0: + topi = '{}: {}\n'.format(index[j], value) + else: + topi = '-1: 0.0\n' + top5_str += topi + print(top5_str) + +def run_onnx_part(inputs, model_path): + sess = rt.InferenceSession(model_path) + + img = inputs[0] + img = img.transpose((2,0,1)) + img = img.reshape((1,*img.shape)) + + input_name_0 = sess.get_inputs()[0].name + output_name= sess.get_outputs()[0].name + + #forward model + res = sess.run([output_name], {input_name_0: img}) + output = np.array(res[0]) + return output + +if __name__ == '__main__': + model_path = './shufflenetv2_x1.onnx' + img = cv2.imread('./dog_224x224.jpg') + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB).astype(np.float32) + img[:,:,0] -= 123.68 + img[:,:,1] -= 116.28 + img[:,:,2] -= 103.53 + img /= 57.38 + + result = run_onnx_part([img], model_path) + show_outputs(softmax(result[0])) + print('done') diff --git a/examples/common_function_demos/accuracy_analysis/shufflenetv2_x1.onnx b/examples/common_function_demos/accuracy_analysis/shufflenetv2_x1.onnx new file mode 100644 index 0000000..614c522 Binary files /dev/null and b/examples/common_function_demos/accuracy_analysis/shufflenetv2_x1.onnx differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/dataset.txt b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/dataset.txt index 3954798..28fe4c8 100644 --- a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/dataset.txt +++ b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/dataset.txt @@ -1,200 +1 @@ -./val2017/000000000139.jpg -./val2017/000000000285.jpg -./val2017/000000000632.jpg -./val2017/000000000724.jpg -./val2017/000000000776.jpg -./val2017/000000000785.jpg -./val2017/000000000802.jpg -./val2017/000000000872.jpg -./val2017/000000000885.jpg -./val2017/000000001000.jpg -./val2017/000000001268.jpg -./val2017/000000001296.jpg -./val2017/000000001353.jpg -./val2017/000000001425.jpg -./val2017/000000001490.jpg -./val2017/000000001503.jpg -./val2017/000000001532.jpg -./val2017/000000001584.jpg -./val2017/000000001675.jpg -./val2017/000000001761.jpg -./val2017/000000001818.jpg -./val2017/000000001993.jpg -./val2017/000000002006.jpg -./val2017/000000002149.jpg -./val2017/000000002153.jpg -./val2017/000000002157.jpg -./val2017/000000002261.jpg -./val2017/000000002299.jpg -./val2017/000000002431.jpg -./val2017/000000002473.jpg -./val2017/000000002532.jpg -./val2017/000000002587.jpg -./val2017/000000002592.jpg -./val2017/000000002685.jpg -./val2017/000000002923.jpg -./val2017/000000003156.jpg -./val2017/000000003255.jpg -./val2017/000000003501.jpg -./val2017/000000003553.jpg -./val2017/000000003661.jpg -./val2017/000000003845.jpg -./val2017/000000003934.jpg -./val2017/000000004134.jpg -./val2017/000000004395.jpg -./val2017/000000004495.jpg -./val2017/000000004765.jpg -./val2017/000000004795.jpg -./val2017/000000005001.jpg -./val2017/000000005037.jpg -./val2017/000000005060.jpg -./val2017/000000005193.jpg -./val2017/000000005477.jpg -./val2017/000000005503.jpg -./val2017/000000005529.jpg -./val2017/000000005586.jpg -./val2017/000000005600.jpg -./val2017/000000005992.jpg -./val2017/000000006012.jpg -./val2017/000000006040.jpg -./val2017/000000006213.jpg -./val2017/000000006460.jpg -./val2017/000000006471.jpg -./val2017/000000006614.jpg -./val2017/000000006723.jpg -./val2017/000000006763.jpg -./val2017/000000006771.jpg -./val2017/000000006818.jpg -./val2017/000000006894.jpg -./val2017/000000006954.jpg -./val2017/000000007088.jpg -./val2017/000000007108.jpg -./val2017/000000007278.jpg -./val2017/000000007281.jpg -./val2017/000000007386.jpg -./val2017/000000007511.jpg -./val2017/000000007574.jpg -./val2017/000000007784.jpg -./val2017/000000007795.jpg -./val2017/000000007816.jpg -./val2017/000000007818.jpg -./val2017/000000007977.jpg -./val2017/000000007991.jpg -./val2017/000000008021.jpg -./val2017/000000008211.jpg -./val2017/000000008277.jpg -./val2017/000000008532.jpg -./val2017/000000008629.jpg -./val2017/000000008690.jpg -./val2017/000000008762.jpg -./val2017/000000008844.jpg -./val2017/000000008899.jpg -./val2017/000000009378.jpg -./val2017/000000009400.jpg -./val2017/000000009448.jpg -./val2017/000000009483.jpg -./val2017/000000009590.jpg -./val2017/000000009769.jpg -./val2017/000000009772.jpg -./val2017/000000009891.jpg -./val2017/000000009914.jpg -./val2017/000000010092.jpg -./val2017/000000010363.jpg -./val2017/000000010583.jpg -./val2017/000000010707.jpg -./val2017/000000010764.jpg -./val2017/000000010977.jpg -./val2017/000000010995.jpg -./val2017/000000011051.jpg -./val2017/000000011122.jpg -./val2017/000000011149.jpg -./val2017/000000011197.jpg -./val2017/000000011511.jpg -./val2017/000000011615.jpg -./val2017/000000011699.jpg -./val2017/000000011760.jpg -./val2017/000000011813.jpg -./val2017/000000012062.jpg -./val2017/000000012120.jpg -./val2017/000000012280.jpg -./val2017/000000012576.jpg -./val2017/000000012639.jpg -./val2017/000000012667.jpg -./val2017/000000012670.jpg -./val2017/000000012748.jpg -./val2017/000000013004.jpg -./val2017/000000013177.jpg -./val2017/000000013201.jpg -./val2017/000000013291.jpg -./val2017/000000013348.jpg -./val2017/000000013546.jpg -./val2017/000000013597.jpg -./val2017/000000013659.jpg -./val2017/000000013729.jpg -./val2017/000000013774.jpg -./val2017/000000013923.jpg -./val2017/000000014007.jpg -./val2017/000000014038.jpg -./val2017/000000014226.jpg -./val2017/000000014380.jpg -./val2017/000000014439.jpg -./val2017/000000014473.jpg -./val2017/000000014831.jpg -./val2017/000000014888.jpg -./val2017/000000015079.jpg -./val2017/000000015254.jpg -./val2017/000000015272.jpg -./val2017/000000015278.jpg -./val2017/000000015335.jpg -./val2017/000000015338.jpg -./val2017/000000015440.jpg -./val2017/000000015497.jpg -./val2017/000000015517.jpg -./val2017/000000015597.jpg -./val2017/000000015660.jpg -./val2017/000000015746.jpg -./val2017/000000015751.jpg -./val2017/000000015956.jpg -./val2017/000000016010.jpg -./val2017/000000016228.jpg -./val2017/000000016249.jpg -./val2017/000000016439.jpg -./val2017/000000016451.jpg -./val2017/000000016502.jpg -./val2017/000000016598.jpg -./val2017/000000016958.jpg -./val2017/000000017029.jpg -./val2017/000000017031.jpg -./val2017/000000017115.jpg -./val2017/000000017178.jpg -./val2017/000000017182.jpg -./val2017/000000017207.jpg -./val2017/000000017379.jpg -./val2017/000000017436.jpg -./val2017/000000017627.jpg -./val2017/000000017714.jpg -./val2017/000000017899.jpg -./val2017/000000017905.jpg -./val2017/000000017959.jpg -./val2017/000000018150.jpg -./val2017/000000018193.jpg -./val2017/000000018380.jpg -./val2017/000000018491.jpg -./val2017/000000018519.jpg -./val2017/000000018575.jpg -./val2017/000000018737.jpg -./val2017/000000018770.jpg -./val2017/000000018833.jpg -./val2017/000000018837.jpg -./val2017/000000019042.jpg -./val2017/000000019109.jpg -./val2017/000000019221.jpg -./val2017/000000019402.jpg -./val2017/000000019432.jpg -./val2017/000000019742.jpg -./val2017/000000019786.jpg -./val2017/000000019924.jpg -./val2017/000000020059.jpg -./val2017/000000020107.jpg -./val2017/000000020247.jpg ./dog_bike_car_300x300.jpg diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/step1.py b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/step1.py index 939145f..821e92d 100644 --- a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/step1.py +++ b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/step1.py @@ -31,8 +31,6 @@ exit(ret) print('done') - rknn.export_rknn("ssd_mobilenet_v2.rknn") - # Tips print('Please modify ssd_mobilenet_v2.quantization.cfg!') print('==================================================================================================') diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000139.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000139.jpg deleted file mode 100644 index 19023f7..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000139.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000285.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000285.jpg deleted file mode 100644 index 7d76080..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000285.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000632.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000632.jpg deleted file mode 100644 index e04fea5..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000632.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000724.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000724.jpg deleted file mode 100644 index 2a17e0c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000724.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000776.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000776.jpg deleted file mode 100644 index 26360e2..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000776.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000785.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000785.jpg deleted file mode 100644 index 78718f5..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000785.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000802.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000802.jpg deleted file mode 100644 index d8d1184..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000802.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000872.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000872.jpg deleted file mode 100644 index 2eac5c2..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000872.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000885.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000885.jpg deleted file mode 100644 index 677a010..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000000885.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001000.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001000.jpg deleted file mode 100644 index ba333ca..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001000.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001268.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001268.jpg deleted file mode 100644 index 986b5b2..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001268.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001296.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001296.jpg deleted file mode 100644 index ac68a88..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001296.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001353.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001353.jpg deleted file mode 100644 index c4cfd59..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001353.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001425.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001425.jpg deleted file mode 100644 index 1aaa54a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001425.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001490.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001490.jpg deleted file mode 100644 index 1335553..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001490.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001503.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001503.jpg deleted file mode 100644 index efc9f5d..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001503.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001532.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001532.jpg deleted file mode 100644 index 23a3c72..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001532.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001584.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001584.jpg deleted file mode 100644 index a01cd65..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001584.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001675.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001675.jpg deleted file mode 100644 index 4097fe3..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001675.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001761.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001761.jpg deleted file mode 100644 index 0248bc3..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001761.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001818.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001818.jpg deleted file mode 100644 index 450a89d..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001818.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001993.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001993.jpg deleted file mode 100644 index efc6249..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000001993.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002006.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002006.jpg deleted file mode 100644 index 7912379..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002006.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002149.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002149.jpg deleted file mode 100644 index ef20e7d..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002149.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002153.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002153.jpg deleted file mode 100644 index 861fa3f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002153.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002157.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002157.jpg deleted file mode 100644 index 06e31fc..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002157.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002261.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002261.jpg deleted file mode 100644 index 044dfd3..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002261.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002299.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002299.jpg deleted file mode 100644 index 33d0571..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002299.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002431.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002431.jpg deleted file mode 100644 index f92b336..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002431.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002473.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002473.jpg deleted file mode 100644 index 271b08c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002473.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002532.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002532.jpg deleted file mode 100644 index 2eed2eb..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002532.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002587.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002587.jpg deleted file mode 100644 index a701542..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002587.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002592.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002592.jpg deleted file mode 100644 index 90f824a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002592.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002685.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002685.jpg deleted file mode 100644 index 06bca7e..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002685.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002923.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002923.jpg deleted file mode 100644 index 40da398..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000002923.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003156.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003156.jpg deleted file mode 100644 index 361195d..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003156.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003255.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003255.jpg deleted file mode 100644 index ab10e02..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003255.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003501.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003501.jpg deleted file mode 100644 index 560e4a9..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003501.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003553.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003553.jpg deleted file mode 100644 index 35602a1..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003553.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003661.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003661.jpg deleted file mode 100644 index 6ae754a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003661.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003845.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003845.jpg deleted file mode 100644 index 48d581d..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003845.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003934.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003934.jpg deleted file mode 100644 index ba28b5a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000003934.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004134.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004134.jpg deleted file mode 100644 index 10f0540..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004134.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004395.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004395.jpg deleted file mode 100644 index 27e1068..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004395.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004495.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004495.jpg deleted file mode 100644 index a3058b9..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004495.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004765.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004765.jpg deleted file mode 100644 index a380b23..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004765.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004795.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004795.jpg deleted file mode 100644 index 6a9987b..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000004795.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005001.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005001.jpg deleted file mode 100644 index a7d4437..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005001.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005037.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005037.jpg deleted file mode 100644 index efd8ad3..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005037.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005060.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005060.jpg deleted file mode 100644 index 9343a14..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005060.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005193.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005193.jpg deleted file mode 100644 index 4526b99..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005193.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005477.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005477.jpg deleted file mode 100644 index 665e165..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005477.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005503.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005503.jpg deleted file mode 100644 index 6fb7e3d..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005503.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005529.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005529.jpg deleted file mode 100644 index 344bdda..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005529.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005586.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005586.jpg deleted file mode 100644 index 3478b76..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005586.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005600.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005600.jpg deleted file mode 100644 index c1dc263..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005600.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005992.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005992.jpg deleted file mode 100644 index df4bf78..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000005992.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006012.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006012.jpg deleted file mode 100644 index 681f1d7..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006012.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006040.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006040.jpg deleted file mode 100644 index 8eefe6f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006040.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006213.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006213.jpg deleted file mode 100644 index 59c4c21..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006213.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006460.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006460.jpg deleted file mode 100644 index b6f1e22..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006460.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006471.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006471.jpg deleted file mode 100644 index 9e5015a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006471.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006614.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006614.jpg deleted file mode 100644 index 5156401..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006614.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006723.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006723.jpg deleted file mode 100644 index c8cc47c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006723.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006763.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006763.jpg deleted file mode 100644 index 59886c9..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006763.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006771.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006771.jpg deleted file mode 100644 index b189319..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006771.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006818.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006818.jpg deleted file mode 100644 index 132d782..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006818.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006894.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006894.jpg deleted file mode 100644 index c1ed27f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006894.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006954.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006954.jpg deleted file mode 100644 index 7418152..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000006954.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007088.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007088.jpg deleted file mode 100644 index b3a1ca3..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007088.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007108.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007108.jpg deleted file mode 100644 index 78e1bf1..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007108.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007278.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007278.jpg deleted file mode 100644 index 2a1340b..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007278.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007281.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007281.jpg deleted file mode 100644 index 2c387ad..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007281.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007386.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007386.jpg deleted file mode 100644 index 63457c4..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007386.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007511.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007511.jpg deleted file mode 100644 index 1164a6f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007511.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007574.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007574.jpg deleted file mode 100644 index b47cf6a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007574.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007784.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007784.jpg deleted file mode 100644 index fca3be2..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007784.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007795.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007795.jpg deleted file mode 100644 index bd5479d..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007795.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007816.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007816.jpg deleted file mode 100644 index 0708036..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007816.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007818.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007818.jpg deleted file mode 100644 index 1f6b28b..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007818.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007977.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007977.jpg deleted file mode 100644 index d52a4b7..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007977.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007991.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007991.jpg deleted file mode 100644 index d532109..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000007991.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008021.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008021.jpg deleted file mode 100644 index 3097fc9..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008021.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008211.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008211.jpg deleted file mode 100644 index f18ca07..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008211.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008277.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008277.jpg deleted file mode 100644 index 310e72f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008277.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008532.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008532.jpg deleted file mode 100644 index 5672289..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008532.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008629.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008629.jpg deleted file mode 100644 index 7c45b46..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008629.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008690.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008690.jpg deleted file mode 100644 index 4fed47a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008690.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008762.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008762.jpg deleted file mode 100644 index 841f251..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008762.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008844.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008844.jpg deleted file mode 100644 index d117937..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008844.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008899.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008899.jpg deleted file mode 100644 index 296f01a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000008899.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009378.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009378.jpg deleted file mode 100644 index 409a3a7..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009378.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009400.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009400.jpg deleted file mode 100644 index 1105986..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009400.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009448.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009448.jpg deleted file mode 100644 index 8b68d93..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009448.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009483.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009483.jpg deleted file mode 100644 index 67f0c72..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009483.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009590.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009590.jpg deleted file mode 100644 index 4900314..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009590.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009769.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009769.jpg deleted file mode 100644 index 36dece6..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009769.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009772.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009772.jpg deleted file mode 100644 index a68ac1f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009772.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009891.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009891.jpg deleted file mode 100644 index b12bf63..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009891.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009914.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009914.jpg deleted file mode 100644 index f0ab575..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000009914.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010092.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010092.jpg deleted file mode 100644 index 54b98d5..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010092.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010363.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010363.jpg deleted file mode 100644 index 99016f0..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010363.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010583.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010583.jpg deleted file mode 100644 index aac4bf2..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010583.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010707.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010707.jpg deleted file mode 100644 index f7c74e0..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010707.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010764.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010764.jpg deleted file mode 100644 index 39327f0..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010764.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010977.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010977.jpg deleted file mode 100644 index e88481e..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010977.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010995.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010995.jpg deleted file mode 100644 index ef1db3e..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000010995.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011051.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011051.jpg deleted file mode 100644 index 71a14e1..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011051.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011122.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011122.jpg deleted file mode 100644 index 9541405..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011122.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011149.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011149.jpg deleted file mode 100644 index 3de5f53..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011149.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011197.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011197.jpg deleted file mode 100644 index 3843d44..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011197.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011511.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011511.jpg deleted file mode 100644 index bbaf351..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011511.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011615.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011615.jpg deleted file mode 100644 index 66ec4ad..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011615.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011699.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011699.jpg deleted file mode 100644 index e65936f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011699.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011760.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011760.jpg deleted file mode 100644 index b16a5ed..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011760.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011813.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011813.jpg deleted file mode 100644 index 987783a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000011813.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012062.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012062.jpg deleted file mode 100644 index 3c9de73..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012062.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012120.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012120.jpg deleted file mode 100644 index a938ab2..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012120.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012280.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012280.jpg deleted file mode 100644 index 48127a5..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012280.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012576.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012576.jpg deleted file mode 100644 index d4b1a5b..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012576.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012639.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012639.jpg deleted file mode 100644 index b2ed15c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012639.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012667.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012667.jpg deleted file mode 100644 index 0cf4956..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012667.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012670.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012670.jpg deleted file mode 100644 index b3e2e42..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012670.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012748.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012748.jpg deleted file mode 100644 index 8b5f4c5..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000012748.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013004.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013004.jpg deleted file mode 100644 index 6cb5573..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013004.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013177.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013177.jpg deleted file mode 100644 index 5b0b54a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013177.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013201.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013201.jpg deleted file mode 100644 index b5ff17f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013201.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013291.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013291.jpg deleted file mode 100644 index 19c4fff..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013291.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013348.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013348.jpg deleted file mode 100644 index 03bbb94..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013348.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013546.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013546.jpg deleted file mode 100644 index 389684f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013546.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013597.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013597.jpg deleted file mode 100644 index 9a2687c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013597.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013659.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013659.jpg deleted file mode 100644 index 123d95f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013659.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013729.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013729.jpg deleted file mode 100644 index dd2bc4d..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013729.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013774.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013774.jpg deleted file mode 100644 index de140d8..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013774.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013923.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013923.jpg deleted file mode 100644 index 05e3f7c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000013923.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014007.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014007.jpg deleted file mode 100644 index 8696163..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014007.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014038.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014038.jpg deleted file mode 100644 index eb0cc77..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014038.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014226.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014226.jpg deleted file mode 100644 index 4ae7f42..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014226.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014380.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014380.jpg deleted file mode 100644 index a85ece8..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014380.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014439.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014439.jpg deleted file mode 100644 index 0abbdab..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014439.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014473.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014473.jpg deleted file mode 100644 index b7192f3..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014473.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014831.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014831.jpg deleted file mode 100644 index 27eda37..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014831.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014888.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014888.jpg deleted file mode 100644 index a609cdf..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000014888.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015079.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015079.jpg deleted file mode 100644 index 24be72c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015079.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015254.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015254.jpg deleted file mode 100644 index 717ba8a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015254.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015272.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015272.jpg deleted file mode 100644 index 6cc3919..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015272.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015278.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015278.jpg deleted file mode 100644 index 1e69377..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015278.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015335.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015335.jpg deleted file mode 100644 index 1231ff8..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015335.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015338.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015338.jpg deleted file mode 100644 index 765870e..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015338.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015440.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015440.jpg deleted file mode 100644 index 4362ec1..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015440.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015497.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015497.jpg deleted file mode 100644 index c2ab1aa..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015497.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015517.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015517.jpg deleted file mode 100644 index 7b6751b..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015517.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015597.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015597.jpg deleted file mode 100644 index a232727..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015597.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015660.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015660.jpg deleted file mode 100644 index 69fc83c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015660.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015746.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015746.jpg deleted file mode 100644 index 0fca668..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015746.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015751.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015751.jpg deleted file mode 100644 index 5c629a8..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015751.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015956.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015956.jpg deleted file mode 100644 index f4cb09c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000015956.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016010.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016010.jpg deleted file mode 100644 index aa3f083..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016010.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016228.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016228.jpg deleted file mode 100644 index d5a5a3f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016228.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016249.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016249.jpg deleted file mode 100644 index 021626a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016249.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016439.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016439.jpg deleted file mode 100644 index 01c59d7..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016439.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016451.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016451.jpg deleted file mode 100644 index 806a9f6..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016451.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016502.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016502.jpg deleted file mode 100644 index ef4f855..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016502.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016598.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016598.jpg deleted file mode 100644 index e401f9a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016598.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016958.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016958.jpg deleted file mode 100644 index e637589..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000016958.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017029.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017029.jpg deleted file mode 100644 index 3e2351f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017029.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017031.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017031.jpg deleted file mode 100644 index 7d091e9..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017031.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017115.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017115.jpg deleted file mode 100644 index 3d6ec77..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017115.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017178.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017178.jpg deleted file mode 100644 index 50016b5..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017178.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017182.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017182.jpg deleted file mode 100644 index 28949d2..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017182.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017207.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017207.jpg deleted file mode 100644 index 494b48c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017207.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017379.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017379.jpg deleted file mode 100644 index 04ee678..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017379.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017436.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017436.jpg deleted file mode 100644 index 12dca6f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017436.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017627.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017627.jpg deleted file mode 100644 index 3e11df1..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017627.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017714.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017714.jpg deleted file mode 100644 index b1ebfff..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017714.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017899.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017899.jpg deleted file mode 100644 index 618db3b..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017899.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017905.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017905.jpg deleted file mode 100644 index 6e87a52..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017905.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017959.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017959.jpg deleted file mode 100644 index fba6776..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000017959.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018150.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018150.jpg deleted file mode 100644 index 547b556..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018150.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018193.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018193.jpg deleted file mode 100644 index 4446aef..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018193.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018380.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018380.jpg deleted file mode 100644 index b349df1..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018380.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018491.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018491.jpg deleted file mode 100644 index 40bb5d7..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018491.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018519.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018519.jpg deleted file mode 100644 index e6a485a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018519.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018575.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018575.jpg deleted file mode 100644 index 618984a..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018575.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018737.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018737.jpg deleted file mode 100644 index 340c394..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018737.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018770.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018770.jpg deleted file mode 100644 index d2472e5..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018770.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018833.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018833.jpg deleted file mode 100644 index 6408447..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018833.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018837.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018837.jpg deleted file mode 100644 index 51b7b34..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000018837.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019042.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019042.jpg deleted file mode 100644 index 440d74b..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019042.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019109.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019109.jpg deleted file mode 100644 index 1e20cdd..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019109.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019221.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019221.jpg deleted file mode 100644 index 64afe2e..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019221.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019402.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019402.jpg deleted file mode 100644 index 82010ce..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019402.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019432.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019432.jpg deleted file mode 100644 index efdcc7f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019432.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019742.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019742.jpg deleted file mode 100644 index 62ef3c4..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019742.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019786.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019786.jpg deleted file mode 100644 index 5e174ab..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019786.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019924.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019924.jpg deleted file mode 100644 index 1675bd9..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000019924.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000020059.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000020059.jpg deleted file mode 100644 index 32f2ab6..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000020059.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000020107.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000020107.jpg deleted file mode 100644 index ced9d7c..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000020107.jpg and /dev/null differ diff --git a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000020247.jpg b/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000020247.jpg deleted file mode 100644 index 6e0e39f..0000000 Binary files a/examples/common_function_demos/hybrid_quantization/ssd_mobilenet_v2/val2017/000000020247.jpg and /dev/null differ diff --git a/examples/common_function_demos/pass_through/bike_boy.jpg b/examples/common_function_demos/pass_through/bike_boy.jpg new file mode 100644 index 0000000..1d9f15b Binary files /dev/null and b/examples/common_function_demos/pass_through/bike_boy.jpg differ diff --git a/examples/common_function_demos/pass_through/get_dataset_colormap.py b/examples/common_function_demos/pass_through/get_dataset_colormap.py new file mode 100644 index 0000000..297873f --- /dev/null +++ b/examples/common_function_demos/pass_through/get_dataset_colormap.py @@ -0,0 +1,148 @@ +# Copyright 2018 The TensorFlow Authors All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Visualizes the segmentation results via specified color map. + +Visualizes the semantic segmentation results by the color map +defined by the different datasets. Supported colormaps are: + +1. PASCAL VOC semantic segmentation benchmark. +Website: http://host.robots.ox.ac.uk/pascal/VOC/ +""" + +import numpy as np + +# Dataset names. +_CITYSCAPES = 'cityscapes' +_PASCAL = 'pascal' + +# Max number of entries in the colormap for each dataset. +_DATASET_MAX_ENTRIES = { + _CITYSCAPES: 19, + _PASCAL: 256, +} + + +def create_cityscapes_label_colormap(): + """Creates a label colormap used in CITYSCAPES segmentation benchmark. + + Returns: + A Colormap for visualizing segmentation results. + """ + colormap = np.asarray([ + [128, 64, 128], + [244, 35, 232], + [70, 70, 70], + [102, 102, 156], + [190, 153, 153], + [153, 153, 153], + [250, 170, 30], + [220, 220, 0], + [107, 142, 35], + [152, 251, 152], + [70, 130, 180], + [220, 20, 60], + [255, 0, 0], + [0, 0, 142], + [0, 0, 70], + [0, 60, 100], + [0, 80, 100], + [0, 0, 230], + [119, 11, 32], + ]) + return colormap + + +def get_pascal_name(): + return _PASCAL + + +def get_cityscapes_name(): + return _CITYSCAPES + + +def bit_get(val, idx): + """Gets the bit value. + + Args: + val: Input value, int or numpy int array. + idx: Which bit of the input val. + + Returns: + The "idx"-th bit of input val. + """ + return (val >> idx) & 1 + + +def create_pascal_label_colormap(): + """Creates a label colormap used in PASCAL VOC segmentation benchmark. + + Returns: + A Colormap for visualizing segmentation results. + """ + colormap = np.zeros((_DATASET_MAX_ENTRIES[_PASCAL], 3), dtype=int) + ind = np.arange(_DATASET_MAX_ENTRIES[_PASCAL], dtype=int) + + for shift in reversed(range(8)): + for channel in range(3): + colormap[:, channel] |= bit_get(ind, channel) << shift + ind >>= 3 + + return colormap + + +def create_label_colormap(dataset=_PASCAL): + """Creates a label colormap for the specified dataset. + + Args: + dataset: The colormap used in the dataset. + + Returns: + A numpy array of the dataset colormap. + + Raises: + ValueError: If the dataset is not supported. + """ + if dataset == _PASCAL: + return create_pascal_label_colormap() + elif dataset == _CITYSCAPES: + return create_cityscapes_label_colormap() + else: + raise ValueError('Unsupported dataset.') + + +def label_to_color_image(label, dataset=_PASCAL): + """Adds color defined by the dataset colormap to the label. + + Args: + label: A 2D array with integer type, storing the segmentation label. + dataset: The colormap used in the dataset. + + Returns: + result: A 2D array with floating type. The element of the array + is the color indexed by the corresponding element in the input label + to the PASCAL color map. + + Raises: + ValueError: If label is not of rank 2 or its value is larger than color + map maximum entry. + """ + if label.ndim != 2: + raise ValueError('Expect 2-D input label') + + if np.max(label) >= _DATASET_MAX_ENTRIES[dataset]: + raise ValueError('label value too large.') + + colormap = create_label_colormap(dataset) + return colormap[label] diff --git a/examples/common_function_demos/pass_through/test.py b/examples/common_function_demos/pass_through/test.py new file mode 100644 index 0000000..e254a79 --- /dev/null +++ b/examples/common_function_demos/pass_through/test.py @@ -0,0 +1,222 @@ +from PIL import Image +import numpy as np +from matplotlib import gridspec +from matplotlib import pyplot as plt +import cv2 +import sys +import argparse +import os +import time +import urllib +import traceback + +from rknn.api import RKNN + +# Needed to show segmentation colormap labels +import get_dataset_colormap + +INPUT_SIZE = 513 +TEST_IMAGE = './bike_boy.jpg' +LABEL_NAMES = np.asarray([ + 'background', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', + 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', + 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', + 'train', 'tv' +]) + +FULL_LABEL_MAP = np.arange(len(LABEL_NAMES)).reshape(len(LABEL_NAMES), 1) +FULL_COLOR_MAP = get_dataset_colormap.label_to_color_image(FULL_LABEL_MAP) + +def readable_speed(speed): + speed_bytes = float(speed) + speed_kbytes = speed_bytes / 1024 + if speed_kbytes > 1024: + speed_mbytes = speed_kbytes / 1024 + if speed_mbytes > 1024: + speed_gbytes = speed_mbytes / 1024 + return "{:.2f} GB/s".format(speed_gbytes) + else: + return "{:.2f} MB/s".format(speed_mbytes) + else: + return "{:.2f} KB/s".format(speed_kbytes) + +def show_progress(blocknum, blocksize, totalsize): + speed = (blocknum * blocksize) / (time.time() - start_time) + speed_str = " Speed: {}".format(readable_speed(speed)) + recv_size = blocknum * blocksize + + f = sys.stdout + progress = (recv_size / totalsize) + progress_str = "{:.2f}%".format(progress * 100) + n = round(progress * 50) + s = ('#' * n).ljust(50, '-') + f.write(progress_str.ljust(8, ' ') + '[' + s + ']' + speed_str) + f.flush() + f.write('\r\n') + +def run(image, inference_result): + """Runs inference on a single image. + + Args: + image: A PIL.Image object, raw input image. + + Returns: + resized_image: RGB image resized from original input image. + seg_map: Segmentation map of `resized_image`. + """ + width, height = image.size + resize_ratio = 1.0 * INPUT_SIZE / max(width, height) + target_size = (int(resize_ratio * width), int(resize_ratio * height)) + resized_image = image.convert('RGB').resize(target_size, Image.ANTIALIAS) + + b = inference_result + b.shape = 65 * 65, 21 # ResizeBilinear_2 + b = np.transpose(b) + seg_img = np.argmax(b, axis=-2) + seg_img = np.reshape(seg_img, (65, 65)) # ResizeBilinear_2 + + return resized_image, seg_img + +def vis_segmentation(image, seg_map): + plt.figure(figsize=(15, 5)) + grid_spec = gridspec.GridSpec(1, 4, width_ratios=[6, 6, 6, 1]) + + plt.subplot(grid_spec[0]) + plt.imshow(image) + plt.axis('off') + plt.title('input image') + + plt.subplot(grid_spec[1]) + seg_image = get_dataset_colormap.label_to_color_image( + seg_map, get_dataset_colormap.get_pascal_name()).astype(np.uint8) + plt.imshow(seg_image) + plt.axis('off') + plt.title('segmentation map') + + plt.subplot(grid_spec[2]) + plt.imshow(image) + plt.imshow(seg_image, alpha=0.7) + plt.axis('off') + plt.title('segmentation overlay') + + unique_labels = np.unique(seg_map) + ax = plt.subplot(grid_spec[3]) + plt.imshow(FULL_COLOR_MAP[unique_labels].astype(np.uint8), interpolation='nearest') + ax.yaxis.tick_right() + plt.yticks(range(len(unique_labels)), LABEL_NAMES[unique_labels]) + plt.xticks([], []) + ax.tick_params(width=0) + + plt.show() + +def deeplabv3_post_process(img, inference_result): + origin_im = Image.open(img) + print('running deeplab on image %s...' % img) + resized_im, seg_map = run(origin_im, inference_result) + + vis_segmentation(resized_im, seg_map) + +def prepare_dataset(pass_through): + if pass_through == True: + # if using pass_through, dataset should be preprocess first + img = cv2.imread('bike_boy.jpg') + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB).astype(np.float32) + img = (img-127.5)/127.5 + np.save('bike_boy.npy',img) + with open('dataset.txt','w') as F: + F.write('bike_boy.npy\n') + else: + with open('dataset.txt','w') as F: + F.write('bike_boy.jpg\n') + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--pass_through', + type=bool, + default=True) + parser.add_argument('--load_rknn', + type=bool, + default=False) + args = parser.parse_args() + + pass_through = args.pass_through + prepare_dataset(pass_through) + + LOAD_RKNN = args.load_rknn + PB_MODEL = './deeplab-v3-plus-mobilenet-v2.pb' + + # Create RKNN object + rknn = RKNN() + + if not os.path.exists(PB_MODEL): + print('--> Download {}'.format(PB_MODEL)) + url = 'https://cnbj1.fds.api.xiaomi.com/mace/miai-models/deeplab-v3-plus/deeplab-v3-plus-mobilenet-v2.pb' + download_file = PB_MODEL + try: + start_time = time.time() + urllib.request.urlretrieve(url, download_file, show_progress) + except: + print('Download {} failed.'.format(download_file)) + print(traceback.format_exc()) + print('done') + + if not LOAD_RKNN: + # Load tensorflow model + print('--> Loading model') + ret = rknn.load_tensorflow(tf_pb=PB_MODEL, + inputs=['sub_7'], + outputs=['ResizeBilinear_2'], + input_size_list=[[513, 513, 3]]) + if ret != 0: + print('load_tensorflow failed') + exit(ret) + print('done') + + # set config refer to pass_througn value. + if pass_through == True: + rknn.config() + else: + rknn.config(channel_mean_value='127.5 127.5 127.5 127.5', reorder_channel='0 1 2') + + # Build model + print('--> Building model') + ret = rknn.build(do_quantization=True, dataset='./dataset.txt', pre_compile=True) + if ret != 0: + print('build rknn model failed') + exit(ret) + print('done') + + # Export rknn model + ret = rknn.export_rknn('./deeplab-v3-plus-mobilenet-v2.rknn') + if ret != 0: + print('export rknn model failed') + exit(ret) + print('done') + else: + print('--> Load model') + ret = rknn.load_rknn(path='./deeplab-v3-plus-mobilenet-v2.rknn') + if ret < 0: + print('load model failed.') + print('done') + + # init runtime + print('--> init runtime') + ret = rknn.init_runtime(target='rk1808') + if ret < 0: + print('init runtime failed') + exit(ret) + print('done') + + img = cv2.imread(TEST_IMAGE) + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + # preprocess if pass_through is True + if pass_through == True: + img = (img.astype(np.float32)-127.5)/127.5 + + # inference + print('--> inference') + outputs = rknn.inference(inputs=[img]) + print('done') + deeplabv3_post_process(img=TEST_IMAGE, inference_result=outputs[0]) + + exit(0) diff --git a/examples/darknet/yolov3/test.py b/examples/darknet/yolov3/test.py index 75082fa..704db59 100644 --- a/examples/darknet/yolov3/test.py +++ b/examples/darknet/yolov3/test.py @@ -231,6 +231,9 @@ def download_yolov3_weight(dst_path): NEED_BUILD_MODEL = True if NEED_BUILD_MODEL: + # Set model config + rknn.config(reorder_channel='0 1 2', mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]]) + # Load darknet model print('--> Loading model') ret = rknn.load_darknet(model=MODEL_PATH, weight=WEIGHT_PATH) @@ -239,8 +242,6 @@ def download_yolov3_weight(dst_path): exit(ret) print('done') - rknn.config(reorder_channel='0 1 2', mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]]) - # Build model print('--> Building model') ret = rknn.build(do_quantization=True, dataset='./dataset.txt') diff --git a/examples/keras/xception/test.py b/examples/keras/xception/test.py index 7fb0874..dc18483 100644 --- a/examples/keras/xception/test.py +++ b/examples/keras/xception/test.py @@ -30,7 +30,7 @@ def export_keras_model(): def show_outputs(outputs): output = outputs[0].reshape(-1) output_sorted = sorted(output, reverse=True) - top5_str = 'mobilenet_v2\n-----TOP 5-----\n' + top5_str = 'xception\n-----TOP 5-----\n' for i in range(5): value = output_sorted[i] index = np.where(output == value) diff --git a/examples/onnx/resnet50v2/test.py b/examples/onnx/resnet50v2/test.py index aced525..773999c 100644 --- a/examples/onnx/resnet50v2/test.py +++ b/examples/onnx/resnet50v2/test.py @@ -86,7 +86,10 @@ def show_progress(blocknum, blocksize, totalsize): # Load ONNX model print('--> Loading model') - ret = rknn.load_onnx(model=ONNX_MODEL) + ret = rknn.load_onnx(model=ONNX_MODEL, + inputs=['data'], + input_size_list=[[3, 224, 224]], + outputs=['resnetv24_dense0_fwd']) if ret != 0: print('Load resnet50v2 failed!') exit(ret) diff --git a/examples/onnx/yolov5/README.md b/examples/onnx/yolov5/README.md new file mode 100644 index 0000000..6aeb2c0 --- /dev/null +++ b/examples/onnx/yolov5/README.md @@ -0,0 +1,32 @@ +### Demo 运行步骤: + +1. 使用yolov5官方仓库导出模型,链接:https://github.com/ultralytics/yolov5。该demo创建时yolov5的最新节点sha码为 8acb5734c7f0d1b7baf62b5c5dab6107a37896c6。 + +2. 在yolov5工程的根目录下导出已训练好的yolov5模型,如yolov5s/m/l.pt,可参考以下指令导出。 + + `python detect.py --weight yolov5s.pt` + + `python export.py --weight yolov5s.pt` + +3. 将导出的onnx模型复制到该demo目录下,执行命令会绘出两个检测结果窗口。 + + `python test.py` + + + +### 注意事项: + +1. 切换成自己训练的模型时,请注意对齐anchor等后处理参数,否则会导致后处理解析出错。 + +2. 最新版本的yolov5模型得到的结果包含两部分: + + A部分:经模型后处理完成的结果。对应 ‘direct result’ 的绘图窗口。 + + B部分:未经模型后处理的结果。对应 ‘full post process result’ 的绘图窗口。 + +3. 在不进行量化的情况下,使用任意一种结果都可以得到正确的结果。 + +4. 在进行**量化**的情况下,在A部分结果中,坐标的数值范围为[0,img_size],而置信度的数值范围为[0,1],量化过程中置信度的值会由于尺度太小,与坐标 concat 到同一个 tensor 时造成置信度值的精度丢失,所以模型量化后不可直接使用A部分结果,**只能自己根据B部分结果进行后处理得到正确的值**。**这个特性是量化本身的性质导致的,用户在使用过程中也应当注意这种不同尺度数据在同个tensor里面时,量化操作会导致严重的精度丢失问题。** + + + diff --git a/examples/onnx/yolov5/dataset.txt b/examples/onnx/yolov5/dataset.txt new file mode 100644 index 0000000..adb6857 --- /dev/null +++ b/examples/onnx/yolov5/dataset.txt @@ -0,0 +1 @@ +dog_bike_car_416x416.jpg diff --git a/examples/onnx/yolov5/dog_bike_car_416x416.jpg b/examples/onnx/yolov5/dog_bike_car_416x416.jpg new file mode 100644 index 0000000..ba5ed91 Binary files /dev/null and b/examples/onnx/yolov5/dog_bike_car_416x416.jpg differ diff --git a/examples/onnx/yolov5/test.py b/examples/onnx/yolov5/test.py new file mode 100644 index 0000000..79af7d6 --- /dev/null +++ b/examples/onnx/yolov5/test.py @@ -0,0 +1,340 @@ +import os +import urllib +import traceback +import time +import sys +import numpy as np +import cv2 +from rknn.api import RKNN + + +ONNX_MODEL = 'yolov5s.onnx' +RKNN_MODEL = 'yolov5.rknn' +IMG_PATH = './dog_bike_car_416x416.jpg' +DATASET = './dataset.txt' + +OBJ_THRESH = 0.5 +NMS_THRESH = 0.6 +IMG_SIZE = 640 + +CLASSES = ("person", "bicycle", "car","motorbike ","aeroplane ","bus ","train","truck ","boat","traffic light", + "fire hydrant","stop sign ","parking meter","bench","bird","cat","dog ","horse ","sheep","cow","elephant", + "bear","zebra ","giraffe","backpack","umbrella","handbag","tie","suitcase","frisbee","skis","snowboard","sports ball","kite", + "baseball bat","baseball glove","skateboard","surfboard","tennis racket","bottle","wine glass","cup","fork","knife ", + "spoon","bowl","banana","apple","sandwich","orange","broccoli","carrot","hot dog","pizza ","donut","cake","chair","sofa", + "pottedplant","bed","diningtable","toilet ","tvmonitor","laptop ","mouse ","remote ","keyboard ","cell phone","microwave ", + "oven ","toaster","sink","refrigerator ","book","clock","vase","scissors ","teddy bear ","hair drier", "toothbrush ") + +def sigmoid(x): + return 1 / (1 + np.exp(-x)) + +def xywh2xyxy(x): + # Convert [x, y, w, h] to [x1, y1, x2, y2] + y = np.copy(x) + y[:, 0] = x[:, 0] - x[:, 2] / 2 # top left x + y[:, 1] = x[:, 1] - x[:, 3] / 2 # top left y + y[:, 2] = x[:, 0] + x[:, 2] / 2 # bottom right x + y[:, 3] = x[:, 1] + x[:, 3] / 2 # bottom right y + return y + +def process(input, mask, anchors): + + anchors = [anchors[i] for i in mask] + grid_h, grid_w = map(int, input.shape[0:2]) + + box_confidence = sigmoid(input[..., 4]) + box_confidence = np.expand_dims(box_confidence, axis=-1) + + box_class_probs = sigmoid(input[..., 5:]) + + box_xy = sigmoid(input[..., :2])*2 - 0.5 + + col = np.tile(np.arange(0, grid_w), grid_w).reshape(-1, grid_w) + row = np.tile(np.arange(0, grid_h).reshape(-1, 1), grid_h) + col = col.reshape(grid_h, grid_w, 1, 1).repeat(3, axis=-2) + row = row.reshape(grid_h, grid_w, 1, 1).repeat(3, axis=-2) + grid = np.concatenate((col, row), axis=-1) + box_xy += grid + box_xy *= int(IMG_SIZE/grid_h) + + box_wh = pow(sigmoid(input[..., 2:4])*2, 2) + box_wh = box_wh * anchors + + box = np.concatenate((box_xy, box_wh), axis=-1) + + return box, box_confidence, box_class_probs + +def filter_boxes(boxes, box_confidences, box_class_probs): + """Filter boxes with object threshold. + + # Arguments + boxes: ndarray, boxes of objects. + box_confidences: ndarray, confidences of objects. + box_class_probs: ndarray, class_probs of objects. + + # Returns + boxes: ndarray, filtered boxes. + classes: ndarray, classes for boxes. + scores: ndarray, scores for boxes. + """ + box_scores = box_confidences * box_class_probs + box_classes = np.argmax(box_scores, axis=-1) + box_class_scores = np.max(box_scores, axis=-1) + pos = np.where(box_class_scores >= OBJ_THRESH) + + boxes = boxes[pos] + classes = box_classes[pos] + scores = box_class_scores[pos] + + return boxes, classes, scores + +def nms_boxes(boxes, scores): + """Suppress non-maximal boxes. + + # Arguments + boxes: ndarray, boxes of objects. + scores: ndarray, scores of objects. + + # Returns + keep: ndarray, index of effective boxes. + """ + x = boxes[:, 0] + y = boxes[:, 1] + w = boxes[:, 2] - boxes[:, 0] + h = boxes[:, 3] - boxes[:, 1] + + areas = w * h + order = scores.argsort()[::-1] + + keep = [] + while order.size > 0: + i = order[0] + keep.append(i) + + xx1 = np.maximum(x[i], x[order[1:]]) + yy1 = np.maximum(y[i], y[order[1:]]) + xx2 = np.minimum(x[i] + w[i], x[order[1:]] + w[order[1:]]) + yy2 = np.minimum(y[i] + h[i], y[order[1:]] + h[order[1:]]) + + w1 = np.maximum(0.0, xx2 - xx1 + 0.00001) + h1 = np.maximum(0.0, yy2 - yy1 + 0.00001) + inter = w1 * h1 + + ovr = inter / (areas[i] + areas[order[1:]] - inter) + inds = np.where(ovr <= NMS_THRESH)[0] + order = order[inds + 1] + keep = np.array(keep) + return keep + +def yolov5_post_process_simple(prediction): + nc = prediction.shape[2] - 5 + xc = prediction[..., 4] > OBJ_THRESH + valid_object = prediction[xc] + valid_object[:,5:] *= valid_object[:,4:5] + + boxes = xywh2xyxy(valid_object[:,:4]) + best_score_class = np.max(valid_object[:,5:],axis=-1) + box_classes = np.argmax(valid_object[:,5:], axis=-1) + + nboxes, nclasses, nscores = [], [], [] + for c in set(box_classes): + inds = np.where(box_classes == c) + b = boxes[inds] + c = box_classes[inds] + s = best_score_class[inds] + + keep = nms_boxes(b, s) + nboxes.append(b[keep]) + nclasses.append(c[keep]) + nscores.append(s[keep]) + + if not nclasses and not nscores: + return None, None, None + + boxes = np.concatenate(nboxes) + classes = np.concatenate(nclasses) + scores = np.concatenate(nscores) + + return boxes, classes, scores + +def yolov5_post_process_full(input_data): + masks = [[0, 1, 2], [3, 4, 5], [6, 7, 8]] + anchors = [[10, 13], [16, 30], [33, 23], [30, 61], [62, 45], + [59, 119], [116, 90], [156, 198], [373, 326]] + + boxes, classes, scores = [], [], [] + for input,mask in zip(input_data, masks): + b, c, s = process(input, mask, anchors) + b, c, s = filter_boxes(b, c, s) + boxes.append(b) + classes.append(c) + scores.append(s) + + boxes = np.concatenate(boxes) + boxes = xywh2xyxy(boxes) + classes = np.concatenate(classes) + scores = np.concatenate(scores) + + nboxes, nclasses, nscores = [], [], [] + for c in set(classes): + inds = np.where(classes == c) + b = boxes[inds] + c = classes[inds] + s = scores[inds] + + keep = nms_boxes(b, s) + + nboxes.append(b[keep]) + nclasses.append(c[keep]) + nscores.append(s[keep]) + + if not nclasses and not nscores: + return None, None, None + + boxes = np.concatenate(nboxes) + classes = np.concatenate(nclasses) + scores = np.concatenate(nscores) + + return boxes, classes, scores + +def draw(image, boxes, scores, classes): + """Draw the boxes on the image. + + # Argument: + image: original image. + boxes: ndarray, boxes of objects. + classes: ndarray, classes of objects. + scores: ndarray, scores of objects. + all_classes: all classes name. + """ + for box, score, cl in zip(boxes, scores, classes): + top, left, right, bottom = box + print('class: {}, score: {}'.format(CLASSES[cl], score)) + print('box coordinate left,top,right,down: [{}, {}, {}, {}]'.format(top, left, right, bottom)) + top = int(top) + left = int(left) + right = int(right) + bottom = int(bottom) + + cv2.rectangle(image, (top, left), (right, bottom), (255, 0, 0), 2) + cv2.putText(image, '{0} {1:.2f}'.format(CLASSES[cl], score), + (top, left - 6), + cv2.FONT_HERSHEY_SIMPLEX, + 0.6, (0, 0, 255), 2) + + +def letterbox(im, new_shape=(640, 640), color=(0, 0, 0)): + # Resize and pad image while meeting stride-multiple constraints + shape = im.shape[:2] # current shape [height, width] + if isinstance(new_shape, int): + new_shape = (new_shape, new_shape) + + # Scale ratio (new / old) + r = min(new_shape[0] / shape[0], new_shape[1] / shape[1]) + + # Compute padding + ratio = r, r # width, height ratios + new_unpad = int(round(shape[1] * r)), int(round(shape[0] * r)) + dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1] # wh padding + + dw /= 2 # divide padding into 2 sides + dh /= 2 + + if shape[::-1] != new_unpad: # resize + im = cv2.resize(im, new_unpad, interpolation=cv2.INTER_LINEAR) + top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1)) + left, right = int(round(dw - 0.1)), int(round(dw + 0.1)) + im = cv2.copyMakeBorder(im, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color) # add border + return im, ratio, (dw, dh) + + +if __name__ == '__main__': + + # Create RKNN object + rknn = RKNN() + + if not os.path.exists(ONNX_MODEL): + print('model not exist') + exit(-1) + + # pre-process config + print('--> Config model') + rknn.config(reorder_channel='0 1 2', + mean_values=[[0, 0, 0]], + std_values=[[255, 255, 255]], + optimization_level=3) + print('done') + + # Load ONNX model + print('--> Loading model') + ret = rknn.load_onnx(model=ONNX_MODEL) + if ret != 0: + print('Load yolov5 failed!') + exit(ret) + print('done') + + # Build model + print('--> Building model') + ret = rknn.build(do_quantization=False, dataset=DATASET) + if ret != 0: + print('Build yolov5 failed!') + exit(ret) + print('done') + + # Export RKNN model + print('--> Export RKNN model') + ret = rknn.export_rknn(RKNN_MODEL) + if ret != 0: + print('Export yolov5rknn failed!') + exit(ret) + print('done') + + # init runtime environment + print('--> Init runtime environment') + # ret = rknn.init_runtime() + ret = rknn.init_runtime('rk1808') + if ret != 0: + print('Init runtime environment failed') + exit(ret) + print('done') + + # Set inputs + img = cv2.imread(IMG_PATH) + img, ratio, (dw, dh) = letterbox(img, new_shape=(IMG_SIZE, IMG_SIZE)) + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + + # Inference + print('--> Running model') + outputs = rknn.inference(inputs=[img]) + + # simple post process + boxes, classes, scores = yolov5_post_process_simple(outputs[0]) + + img_0 = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) + if boxes is not None: + draw(img_0, boxes, scores, classes) + cv2.imshow("direct result", img_0) + + # full post process + input0_data = outputs[1].transpose(0,1,4,2,3) + input1_data = outputs[2].transpose(0,1,4,2,3) + input2_data = outputs[3].transpose(0,1,4,2,3) + + input0_data = input0_data.reshape(*input0_data.shape[1:]) + input1_data = input1_data.reshape(*input1_data.shape[1:]) + input2_data = input2_data.reshape(*input2_data.shape[1:]) + + input_data = list() + input_data.append(np.transpose(input0_data, (2, 3, 0, 1))) + input_data.append(np.transpose(input1_data, (2, 3, 0, 1))) + input_data.append(np.transpose(input2_data, (2, 3, 0, 1))) + + boxes, classes, scores = yolov5_post_process_full(input_data) + + img_1 = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) + if boxes is not None: + draw(img_1, boxes, scores, classes) + cv2.imshow("full post process result", img_1) + cv2.waitKeyEx(0) + + rknn.release() diff --git a/packages/README.md b/packages/README.md old mode 100755 new mode 100644 index d3f0de4..f4f4482 --- a/packages/README.md +++ b/packages/README.md @@ -3,19 +3,19 @@ Prior to version 1.3.0, all wheel packages of rknn-toolkit were placed in this d Since version 1.3.0, because some wheel packages are larger than 100MB and cannot be uploaded directly to github, you need to go to the releases page to download. # Download You can download from releases page: https://github.com/rockchip-linux/rknn-toolkit/releases -- All wheel packages are in compressed file: [rknn-toolkit-v1.6.1-packages.tar.gz](https://github.com/rockchip-linux/rknn-toolkit/releases/download/v1.6.1/rknn-toolkit-v1.6.1-packages.tar.gz "rknn-toolkit-v1.6.1-packages.tar.gz") or [rknn-toolkit-v1.6.1-packages.zip](https://github.com/rockchip-linux/rknn-toolkit/releases/download/v1.6.1/rknn-toolkit-v1.6.1-packages.zip "rknn-toolkit-v1.6.1-packages.zip ") -- All examples, docs and platform-tools are in compressed file: [Source code(zip)](https://github.com/rockchip-linux/rknn-toolkit/archive/v1.6.1.zip "Source code(zip)") or [Source code(tar.gz)](https://github.com/rockchip-linux/rknn-toolkit/archive/v1.6.1.tar.gz "Source code(tar.gz)") +- All wheel packages are in compressed file: [rknn-toolkit-v1.7.0-packages.tar.gz](https://github.com/rockchip-linux/rknn-toolkit/releases/download/v1.7.0/rknn-toolkit-v1.7.0-packages.tar.gz "rknn-toolkit-v1.7.0-packages.tar.gz") or [rknn-toolkit-v1.7.0-packages.zip](https://github.com/rockchip-linux/rknn-toolkit/releases/download/v1.7.0/rknn-toolkit-v1.7.0-packages.zip "rknn-toolkit-v1.7.0-packages.zip ") +- All examples, docs and platform-tools are in compressed file: [Source code(zip)](https://github.com/rockchip-linux/rknn-toolkit/archive/v1.7.0.zip "Source code(zip)") or [Source code(tar.gz)](https://github.com/rockchip-linux/rknn-toolkit/archive/v1.7.0.tar.gz "Source code(tar.gz)") # Checksums ## MD5 ``` -4228195c18de188a41258d8f8263ebb2 rknn_toolkit-1.6.1-cp35-cp35m-linux_aarch64.whl -b58f0ad2dab1d32a9fd574b1f15cb8dc rknn_toolkit-1.6.1-cp35-cp35m-linux_x86_64.whl -dbe70e082772eb66d4f56d3d110f059d rknn_toolkit-1.6.1-cp36-cp36m-linux_x86_64.whl -0e9f8ca4a35f09ce0bc1bb7e12980365 rknn_toolkit-1.6.1-cp36-cp36m-macosx_10_15_x86_64.whl -28a680a2197dc33ca3c90a0a3f5a6420 rknn_toolkit-1.6.1-cp36-cp36m-win_amd64.whl -a7034d33a0a73176f263b9957f81ebcb rknn_toolkit-1.6.1-cp37-cp37m-linux_aarch64.whl -920654ca4bbd5ec0645a79255f8995db rknn_toolkit-1.6.1-cp37-cp37m-macosx_10_15_x86_64.whl +71d8e5a0d97ec9e28912fc7935b31e11 rknn_toolkit-1.7.0-cp35-cp35m-linux_aarch64.whl +c56e04f6d89bb2b6cc6019f4edebf7a8 rknn_toolkit-1.7.0-cp35-cp35m-linux_x86_64.whl +657e36cb314af7913d8600af0de1cebe rknn_toolkit-1.7.0-cp36-cp36m-linux_x86_64.whl +d9dec7ee804e57bc2bdc50c6ac5d6e77 rknn_toolkit-1.7.0-cp36-cp36m-macosx_10_15_x86_64.whl +84d7ea5677944a13904ca916ed266d57 rknn_toolkit-1.7.0-cp36-cp36m-win_amd64.whl +2eb612e046677c4b100f964fb2256d9d rknn_toolkit-1.7.0-cp37-cp37m-linux_aarch64.whl +c4d281cd571d93da3a70acf23807e58e rknn_toolkit-1.7.0-cp37-cp37m-macosx_10_15_x86_64.whl 3d018c30a1985ce75de00e684fc16a5d rknn-toolkit-v1.6.1-packages.tar.gz 12a7fd1338c6f3e4d36e4dcbce905c7e rknn-toolkit-v1.6.1-packages.zip diff --git a/packages/packages.md5sum b/packages/packages.md5sum index d62952d..666d7aa 100644 --- a/packages/packages.md5sum +++ b/packages/packages.md5sum @@ -1,7 +1,7 @@ -4228195c18de188a41258d8f8263ebb2 rknn_toolkit-1.6.1-cp35-cp35m-linux_aarch64.whl -b58f0ad2dab1d32a9fd574b1f15cb8dc rknn_toolkit-1.6.1-cp35-cp35m-linux_x86_64.whl -dbe70e082772eb66d4f56d3d110f059d rknn_toolkit-1.6.1-cp36-cp36m-linux_x86_64.whl -0e9f8ca4a35f09ce0bc1bb7e12980365 rknn_toolkit-1.6.1-cp36-cp36m-macosx_10_15_x86_64.whl -28a680a2197dc33ca3c90a0a3f5a6420 rknn_toolkit-1.6.1-cp36-cp36m-win_amd64.whl -a7034d33a0a73176f263b9957f81ebcb rknn_toolkit-1.6.1-cp37-cp37m-linux_aarch64.whl -920654ca4bbd5ec0645a79255f8995db rknn_toolkit-1.6.1-cp37-cp37m-macosx_10_15_x86_64.whl +71d8e5a0d97ec9e28912fc7935b31e11 rknn_toolkit-1.7.0-cp35-cp35m-linux_aarch64.whl +c56e04f6d89bb2b6cc6019f4edebf7a8 rknn_toolkit-1.7.0-cp35-cp35m-linux_x86_64.whl +657e36cb314af7913d8600af0de1cebe rknn_toolkit-1.7.0-cp36-cp36m-linux_x86_64.whl +d9dec7ee804e57bc2bdc50c6ac5d6e77 rknn_toolkit-1.7.0-cp36-cp36m-macosx_10_15_x86_64.whl +84d7ea5677944a13904ca916ed266d57 rknn_toolkit-1.7.0-cp36-cp36m-win_amd64.whl +2eb612e046677c4b100f964fb2256d9d rknn_toolkit-1.7.0-cp37-cp37m-linux_aarch64.whl +c4d281cd571d93da3a70acf23807e58e rknn_toolkit-1.7.0-cp37-cp37m-macosx_10_15_x86_64.whl diff --git a/rknn-toolkit-lite/packages/packages.md5sum b/rknn-toolkit-lite/packages/packages.md5sum index 4e9643c..9dbcc43 100644 --- a/rknn-toolkit-lite/packages/packages.md5sum +++ b/rknn-toolkit-lite/packages/packages.md5sum @@ -1,7 +1,9 @@ -70e16ae6b9dd287820787a8f338df100 rknn_toolkit_lite-1.6.1-cp35-cp35m-linux_aarch64.whl -1034de0fff4201dc3ace53fd27f4f82d rknn_toolkit_lite-1.6.1-cp35-cp35m-linux_x86_64.whl -b70bc555b00c38f2555cf7b1a3bad21c rknn_toolkit_lite-1.6.1-cp36-cp36m-linux_x86_64.whl -754ed6030c9dc7ef7ca21f983c28ec74 rknn_toolkit_lite-1.6.1-cp36-cp36m-macosx_10_15_x86_64.whl -fcb2399ffd0b436ab1c0483fa4a62038 rknn_toolkit_lite-1.6.1-cp36-cp36m-win_amd64.whl -556299ee8afc20afcef8506d57373b4a rknn_toolkit_lite-1.6.1-cp37-cp37m-linux_aarch64.whl -d723c5856f20859ee42e7fe107c580c3 rknn_toolkit_lite-1.6.1-cp37-cp37m-macosx_10_15_x86_64.whl +4e7e691d5f7de5f73a35522e376b8f27 rknn_toolkit_lite-1.7.0-cp35-cp35m-linux_aarch64.whl +843c28de3f34c3b33f1204b8c2342448 rknn_toolkit_lite-1.7.0-cp35-cp35m-linux_x86_64.whl +91ec0c1910b125225565a431cf86657b rknn_toolkit_lite-1.7.0-cp36-cp36m-linux_armv7l.whl +1d177d17275221dfe3e4922d83d24d73 rknn_toolkit_lite-1.7.0-cp36-cp36m-linux_x86_64.whl +1079e834e6c9722075972f1e75d3c4d3 rknn_toolkit_lite-1.7.0-cp36-cp36m-macosx_10_15_x86_64.whl +5d760a24089487b046c1a0b1fa43ce3c rknn_toolkit_lite-1.7.0-cp36-cp36m-win_amd64.whl +6aa35196d90c134a1918846e54ec0f48 rknn_toolkit_lite-1.7.0-cp37-cp37m-linux_aarch64.whl +e4386a4663165abffba5fa410857a0fc rknn_toolkit_lite-1.7.0-cp37-cp37m-linux_armv7l.whl +e75fefb8be1b47347dd4c3fbb8e865d8 rknn_toolkit_lite-1.7.0-cp37-cp37m-macosx_10_15_x86_64.whl diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp35-cp35m-linux_aarch64.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp35-cp35m-linux_aarch64.whl deleted file mode 100644 index 6b33fc2..0000000 Binary files a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp35-cp35m-linux_aarch64.whl and /dev/null differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-macosx_10_15_x86_64.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-macosx_10_15_x86_64.whl deleted file mode 100644 index 999f7a1..0000000 Binary files a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-macosx_10_15_x86_64.whl and /dev/null differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp37-cp37m-macosx_10_15_x86_64.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp37-cp37m-macosx_10_15_x86_64.whl deleted file mode 100644 index 7b30d51..0000000 Binary files a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp37-cp37m-macosx_10_15_x86_64.whl and /dev/null differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp35-cp35m-linux_aarch64.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp35-cp35m-linux_aarch64.whl new file mode 100644 index 0000000..c2c94c4 Binary files /dev/null and b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp35-cp35m-linux_aarch64.whl differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-linux_x86_64.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp35-cp35m-linux_x86_64.whl similarity index 62% rename from rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-linux_x86_64.whl rename to rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp35-cp35m-linux_x86_64.whl index e4381da..9774771 100644 Binary files a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-linux_x86_64.whl and b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp35-cp35m-linux_x86_64.whl differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-linux_armv7l.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-linux_armv7l.whl similarity index 66% rename from rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-linux_armv7l.whl rename to rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-linux_armv7l.whl index 7c79a96..d2c16f0 100644 Binary files a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-linux_armv7l.whl and b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-linux_armv7l.whl differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp35-cp35m-linux_x86_64.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-linux_x86_64.whl similarity index 70% rename from rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp35-cp35m-linux_x86_64.whl rename to rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-linux_x86_64.whl index 952e575..e799585 100644 Binary files a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp35-cp35m-linux_x86_64.whl and b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-linux_x86_64.whl differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-macosx_10_15_x86_64.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-macosx_10_15_x86_64.whl new file mode 100644 index 0000000..8fb5e21 Binary files /dev/null and b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-macosx_10_15_x86_64.whl differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-win_amd64.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-win_amd64.whl similarity index 88% rename from rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-win_amd64.whl rename to rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-win_amd64.whl index 368c112..4dc1657 100644 Binary files a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp36-cp36m-win_amd64.whl and b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp36-cp36m-win_amd64.whl differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp37-cp37m-linux_aarch64.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp37-cp37m-linux_aarch64.whl similarity index 64% rename from rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp37-cp37m-linux_aarch64.whl rename to rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp37-cp37m-linux_aarch64.whl index 0f0d6dc..d1efec9 100644 Binary files a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.6.1-cp37-cp37m-linux_aarch64.whl and b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp37-cp37m-linux_aarch64.whl differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp37-cp37m-linux_armv7l.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp37-cp37m-linux_armv7l.whl new file mode 100644 index 0000000..d3f8eb6 Binary files /dev/null and b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp37-cp37m-linux_armv7l.whl differ diff --git a/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp37-cp37m-macosx_10_15_x86_64.whl b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp37-cp37m-macosx_10_15_x86_64.whl new file mode 100644 index 0000000..6cee157 Binary files /dev/null and b/rknn-toolkit-lite/packages/rknn_toolkit_lite-1.7.0-cp37-cp37m-macosx_10_15_x86_64.whl differ