获取sample软件包,并上传到AMCT所在服务器任意路径,例如上传到:$HOME/software/AMCT_Pkg/amct_sample。
切换到amct_sample目录,执行如下命令解压sample包。
unzip samples-master.zip cd samples-master/python/level1_single_api/9_amct/amct_acl
获得如下目录信息:
|-- README_CN.md |-- requirements.txt # 执行量化时所需的第三方依赖 |-- resnet101_onnx # ONNX网络模型量化目录 | |-- README_CN.md | |-- data # 数据集存放目录 | |-- model # ONNX 原始网络模型文件所在目录 | |-- scripts | | |-- run_calibration.sh # 执行量化封装脚本 | |-- src | |-- process_data.py # 数据集预处理脚本 |-- resnet50_caffe # Caffe框架ResNet50分类网络模型量化目录 | |-- README_CN.md | |-- data # 数据集存放目录 | |-- model # Caffe框架模型文件所在目录 | |-- scripts | | |-- run_calibration.sh # 执行量化封装脚本 | |-- src | |-- download_models.py # ResNet50模型文件下载脚本 | |-- process_data.py # 数据集预处理脚本 |-- resnet50_tf # TensorFlow框架ResNet50分类网络模型量化目录 |-- README_CN.md |-- data # 数据集存放目录 |-- model # TensorFlow框架模型文件所在目录 |-- scripts | |-- run_calibration.sh # 执行量化封装脚本 |-- src |-- process_data.py # 数据集预处理脚本
python3 ./src/download_models.py --close_certificate_verify
其中,--close_certificate_verify参数可选,用于关闭证书验证参数,确保模型正常下载。如果模型下载过程中提示提示认证失败相关信息,则可以增加该参数重新下载。
若提示如下信息,则说明模型文件下载成功:
[INFO]Download 'ResNet-50-deploy.prototxt' to 'xxx/amct_acl/resnet50_caffe/model/ResNet-50-deploy.prototxt' success. [INFO]Download file_name to 'xxx/amct_acl/resnet50_caffe/model/ResNet-50-model.caffemodel' success.
用户可以根据提示信息,在amct_acl/resnet50_caffe/model路径下看到已经下载的模型文件。
cd data mkdir image && cd image wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/amct_acl/classification/calibration.rar unrar e calibration.rar
上述命令执行完成后,在image目录会生成*.jpg格式数据集。
python3 ./src/process_data.py
执行完成后,在image目录生成calibration.bin数据集。
amct_acl --framework=0 --model=./model/ResNet-50-deploy.prototxt --weight=./model/ResNet-50-model.caffemodel --calibration_data=./data/image/calibration.bin --calibration_shape="data:32,3,224,224" --output=./outputs/ResNet-50-model --soc_version=<soc_version> --log=info
关于参数解释以及说明请参见参数说明。该sample还提供了上述量化命令以及3.b.ii中数据集预处理脚本的封装脚本run_calibration.sh,用户可以直接使用该脚本执行量化,切换到amct_acl/resnet50_caffe目录,执行如下命令:
bash ./scripts/run_calibration.sh
若出现如下信息则说明量化成功:
amct_acl generate deploy air success!
转换样例如下:
atc --model=$HOME/model/ResNet-50-model.air --framework=1 --output=$HOME/model/out/ResNet-50_om --soc_version=<soc_version>
单击Link下载ResNet-50模型文件,下载完成并解压后,将其中resnet_v1_50.pb上传到amct_acl/resnet50_tf/model目录。
cd amct_acl/resnet50_tf/data mkdir calibration && cd calibration wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/amct_acl/classification/calibration.rar unrar e calibration.rar
上述命令执行完成后,在calibration目录会生成*.jpg格式数据集。
python3 ./src/process_data.py
执行完成后,在calibration目录生成calibration.bin格式数据集。
amct_acl --framework=3 --model=./model/resnet_v1_50.pb --calibration_data=./data/calibration/calibration.bin --calibration_shape="input:16,224,224,3" --output=./outputs/resnet_v1_50 --soc_version=<soc_version> --log=info
关于参数解释以及说明请参见参数说明。该sample提供了上述量化命令以及3.b.ii中数据集预处理脚本的封装脚本run_calibration.sh,用户可以直接使用该脚本执行量化,切换到amct_acl/resnet50_tf/目录,执行如下命令:
bash ./scripts/run_calibration.sh
若出现如下信息则说明量化成功:
amct_acl generate deploy air success.
量化成功后,在amct_acl/resnet50_tf/目录生成如下文件:
转换样例如下:
atc --model=$HOME/model/resnet_v1_50.air --framework=1 --output=$HOME/model/out/resnet_v1_50_om --soc_version=<soc_version>
单击Link下载ResNet101模型文件,将下载的resnet101_v11.onnx文件上传到amct_acl/resnet101_onnx/model目录。
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/amct_acl/classification/imagenet_calibration.tar.gz tar -zxvf imagenet_calibration.tar.gz
执行完成后,在images目录会生成*.jpg格式数据集。
python3 ./src/process_data.py
执行完成后,在images目录生成calibration.bin格式数据集。
amct_acl --framework=5 --model=./model/resnet101_v11.onnx --calibration_data=./data/images/calibration.bin --calibration_shape="input:16,3,224,224" --out_nodes="Gemm_353:0" --output=./outputs/resnet101_v11 --soc_version=<soc_version> --log=info
关于参数解释以及说明请参见参数说明。该sample提供了上述量化命令以及3.b.ii中数据集预处理脚本的封装脚本run_calibration.sh,用户可以直接使用该脚本执行量化,切换到amct_acl/resnet101_onnx目录,执行如下命令:
bash ./scripts/run_calibration.sh
若出现如下信息则说明量化成功:
amct_acl generate deploy air success.
量化成功后,在amct_acl/resnet101_onnx目录生成如下文件:
转换样例如下:
atc --model=$HOME/model/resnet101_v11.air --framework=1 --output=$HOME/model/out/resnet101_v11_om --soc_version=<soc_version>