Qualcomm Aimet 效率工具包文件說明

KBA-231226181840

1. 設定環境

1.1.安裝 Nvidia 驅動程式和 CUDA

1.2.安裝相關Python庫

python3 -m pip install –upgrade –忽略安裝的pip
python3 -m pip install –忽略安裝的 gdown
python3 -m pip install –忽略安裝的 opencv-python
python3 -m pip install –忽略安裝的torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
python3 -m pip install –忽略安裝的jax
python3 -m pip install –忽略安裝的 ftfy
python3 -m pip install –忽略安裝的torchinfo
python3 -m pip install –忽略安裝 https://github.com/quic/aimet/releases/download/1.25.0/AimetCommon-torch_gpu_1.25.0-cp38-cp38-linux_x86_64.whl
python3 -m pip install –忽略安裝 https://github.com/quic/aimet/releases/download/1.25.0/AimetTorch-torch_gpu_1.25.0-cp38-cp38-linux_x86_64.whl
python3 -m pip install –忽略安裝的numpy==1.21.6
python3 -m pip install –忽略安裝的 psutil

1.3.克隆aimet-model-zoo

git 克隆 https://github.com/quic/aimet-model-zoo.git
CD AIMET-模型-動物園
git checkout d09d2b0404d10f71a7640a87e9d5e5257b028802
導出 PYTHONPATH=${PYTHONPATH}:${PWD}

1.4.下載套裝14

wget https://uofi.box.com/shared/static/igsnfieh4lz68l926l8xbklwsnnk8we9.zip
unzip igsnfieh4lz68l926l8xbklwsnnk8we9.zip

1.5.修正第39行aimet-model-zoo/aimet_zoo_torch/quicksrnet/dataloader/utils.py

改變
對於 glob.glob(os.path.join(test_images_dir, “*”)) 中的 img_path:

對於 glob.glob(os.path.join(test_images_dir, “*_HR.*”)) 中的 img_path:

1.6.運行評估。

# 在 YOURPATH/aimet-model-run 下運行
# 對於quicksrnet_small_2x_w8a8
python3aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–模型配置quicksrnet_small_2x_w8a8 \
–資料集路徑../Set14/image_SRF_4

# 對於quicksrnet_small_4x_w8a8
python3aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–模型配置quicksrnet_small_4x_w8a8 \
–資料集路徑../Set14/image_SRF_4

# 對於quicksrnet_medium_2x_w8a8
python3aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–模型配置quicksrnet_medium_2x_w8a8 \
–資料集路徑../Set14/image_SRF_4

# 對於quicksrnet_medium_4x_w8a8
python3aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–模型配置quicksrnet_medium_4x_w8a8 \
–資料集路徑../Set14/image_SRF_4

假設您將獲得目標模擬模型的 PSNR 值。您可以變更不同大小的QuickSRNet的模型配置,選項位於aimet-modelzoo/aimet_zoo_torch/quicksrnet/model/model_cards/下方。

2 新增補丁

2.1.開啟“匯出到 ONNX 步驟 REVISED.docx”

2.2.跳過 git 提交 ID

2.3.第 1 節 代碼

在最後一行(第1行之後)aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/models.py下方加入整個366.程式碼

2.4.第 2 節和第 3 節守則

在第2行aimet-model-zoo/aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py下方加入整個3、93程式碼

2.5. load_model函數中的關鍵參數

模型 = load_model(MODEL_PATH_INT8,

型號_名稱,
MODEL_ARGS.get(MODEL_NAME).get(MODEL_CONFIG),
use_quant_sim_model=真,
編碼路徑=ENCODING_PATH,
quantsim_config_path=CONFIG_PATH,
校準資料=IMAGES_LR,
use_cuda=真,
before_quantization=真,
Convert_to_dcr=真)

MODEL_PATH_INT8=aimet_zoo_torch/quicksrnet/模型/重量/quicksrnet_small_2x_w8a8/pre_opt_weights
MODEL_NAME = QuickSRNetSmall
MODEL_ARGS.get(MODEL_NAME).get(MODEL_CONFIG) = {'縮放因子': 2}
ENCODING_PATH=aimet_zoo_torch/quicksrnet/模型/重量/quicksrnet_small_2x_w8a8/adaround_encodings
CONFIG_PATH=aimet_zoo_torch/quicksrnet/模型/重量/quicksrnet_small_2x_w8a8/aimet_config

請取代不同大小的 QuickSRNet 的變數

2.6 模型尺寸修改

  1. aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/model_cards/*.json 中的“input_shape”
  2. aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/inference.py 中的內部函數 load_model(...)
  3. 函數中的參數 export_to_onnx(..., input_height, input_width) 來自“Export to ONNX Steps REVISED.docx”

2.7 再次重新運行1.6以匯出ONNX模型

3. 轉換為SNPE

3.1.轉變

${SNPE_ROOT}/bin/x86_64-linux-clang/snpe-onnx-to-dlc \
–input_network model.onnx \
–quantization_overrides ./model.encodings

3.2. (可選)僅提取量化的 DLC

(可選)snpe-dlc-quant –input_dlc model.dlc –float_fallback –override_params

3.3. (重要)ONNX I/O 依 NCHW 順序排列;轉換後的DLC按NHWC順序

文件/資源

Qualcomm Aimet 效率工具包文檔 [pdf] 指示
Quicksrnet_small_2x_w8a8、quicksrnet_small_4x_w8a8、quicksrnet_medium_2x_w8a8、quicksrnet_medium_4x_w8a8、Aimet 效率工具包文件、效率工具包文件、工具包文件、文檔

參考

發表評論

您的電子郵件地址不會被公開。 必填欄位已標記 *