Инструкции за документација на Qualcomm Aimet Efficiency Toolkit

КБА-231226181840

1. Поставување на животната средина

1.1. Инсталирајте Nvidia драјвер и CUDA

1.2. Инсталирајте поврзана библиотека на Python

python3 -m пип инсталација –надградба –игнорирај-инсталиран пип
python3 -m pip install –ignore-installed gdown
python3 -m пип инсталација – игнорирај-инсталиран opencv-python
python3 -m pip install –ignore-installed 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 пип инсталација – игнорирај-инсталиран jax
python3 -m пип инсталација –игнори-инсталиран ftfy
python3 -m пип инсталација – игнорирај-инсталиран torchinfo
python3 -m pip install –ignore-installed 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 –ignore-installed 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 –ignore-installed 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-model-zoo
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

промена
за img_path во glob.glob(os.path.join(test_images_dir, „*“)):
до
за img_path во glob.glob(os.path.join(test_images_dir, „*_HR.*“)):

1.6. Стартувај евалуација.

# трчај под YOURPATH/aimet-model-run
# За quicksrnet_small_2x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_small_2x_w8a8 \
–податоци-пат ../Set14/image_SRF_4

# За quicksrnet_small_4x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_small_4x_w8a8 \
–податоци-пат ../Set14/image_SRF_4

# За quicksrnet_medium_2x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_medium_2x_w8a8 \
–податоци-пат ../Set14/image_SRF_4

# За quicksrnet_medium_4x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_medium_4x_w8a8 \
–податоци-пат ../Set14/image_SRF_4

да претпоставиме дека ќе го добиете PSNRvalue за theaimetsimulated моделот. Можете да ја промените конфигурацијата на моделот за различна големина на QuickSRNet, опцијата е underaimet-modelzoo/aimet_zoo_torch/quicksrnet/model/model_cards/.

2 Додадете лепенка

2.1. Отворете „Извези во ONNX чекори REVISED.docx“

2.2. Прескокнете го git commit id

2.3. Дел 1 Код

Додадете цела 1. шифра под последната линија (по линијата 366) aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/models.py

2.4. Дел 2 и 3 Код

Додадете цела 2, 3 шифра под линијата 93 aimet-model-zoo/aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py

2.5. Клучни параметри во Function load_model

модел = оптоварување_модел(MODEL_PATH_INT8,

MODEL_NAME,
MODEL_ARGS.get(MODEL_NAME).get(MODEL_CONFIG),
use_quant_sim_model=Точно,
encoding_path=ENCODING_PATH,
quantsim_config_path=CONFIG_PATH,
calibration_data=IMAGES_LR,
use_cuda=Точно,
before_quantization=Точно,
convert_to_dcr=Точно)

MODEL_PATH_INT8 = aimet_zoo_torch/quicksrnet/model/weights/quicksrnet_small_2x_w8a8/pre_opt_weights
MODEL_NAME = QuickSRNetSmall
MODEL_ARGS.get(MODEL_NAME).get(MODEL_CONFIG) = {'scaling_factor': 2}
ENCODING_PATH = aimet_zoo_torch/quicksrnet/model/weights/quicksrnet_small_2x_w8a8/adaround_encodings
CONFIG_PATH = aimet_zoo_torch/quicksrnet/model/weights/quicksrnet_small_2x_w8a8/aimet_config

Ве молиме заменете ги променливите за различна големина на QuickSRNet

2.6 Модификација на големината на моделот

  1. „input_shape“ во aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/model_cards/*.json
  2. Внатрешна функција load_model(…) во aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/inference.py
  3. Параметар внатре во функцијата export_to_onnx (…, влез_висина, влез_ширина) од „Извоз во ONNX чекори REVISED.docx“

2.7 Повторно активирајте 1.6 за извоз на моделот ONNX

3. Конвертирај во SNPE

3.1. Конвертирај

${SNPE_ROOT}/bin/x86_64-linux-clang/snpe-onnx-to-dlc \
–влезен_мрежен модел.onnx \
–quantization_overrides ./model.енкодирања

3.2. (Изборно) Извлечете само квантизирано DLC

(опционално) snpe-dlc-quant –input_dlc model.dlc –float_fallback –override_params

3.3. (ВАЖНО) I/O на ONNX е по редослед на NCHW; Конвертираниот DLC е во ред NHWC

Документи / ресурси

Документација на пакетот алатки за ефикасност на Qualcomm Aimet [pdf] Инструкции
quicksrnet_small_2x_w8a8, quicksrnet_small_4x_w8a8, quicksrnet_medium_2x_w8a8, quicksrnet_medium_4x_w8a8, Aimet Efficiency Toolkit Documentation, Efficiency Toolkit Documentation, Toolkit, Documentation

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *