ຄໍາແນະນໍາເອກະສານຊຸດເຄື່ອງມືປະສິດທິພາບ Qualcomm Aimet

KBA-231226181840

1. ຕັ້ງຄ່າສະພາບແວດລ້ອມ

1.1. ຕິດຕັ້ງໄດເວີ Nvidia ແລະ CUDA

1.2. ຕິດຕັ້ງຫ້ອງສະໝຸດ Python ທີ່ກ່ຽວຂ້ອງ

python3 -m pip ຕິດຕັ້ງ -upgrade -ignore-installed pip
python3 -m pip ຕິດຕັ້ງ -ignore-installed gdown
python3 -m pip ຕິດຕັ້ງ –ignore-installed opencv-python
python3 -m pip ຕິດຕັ້ງ –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 pip ຕິດຕັ້ງ –ignore-installed jax
python3 -m pip ຕິດຕັ້ງ –ignore-installed ftfy
python3 -m pip ການຕິດຕັ້ງ –ignore-installed torchinfo
python3 -m pip ຕິດຕັ້ງ –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 ຕິດຕັ້ງ –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 ຕິດຕັ້ງ –ignore-installed numpy==1.21.6
python3 -m pip ຕິດຕັ້ງ –ignore-installed psutil

1.3. Clone aimet-model-zoo

git clone https://github.com/quic/aimet-model-zoo.git
cd aimet-model-zoo
git checkout d09d2b0404d10f71a7640a87e9d5e5257b028802
ສົ່ງອອກ PYTHONPATH=${PYTHONPATH}:${PWD}

1.4. ດາວໂຫລດ Set14

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 \
–dataset-path ../Set14/image_SRF_4

# ສໍາລັບ quicksrnet_small_4x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_small_4x_w8a8 \
–dataset-path ../Set14/image_SRF_4

# ສໍາລັບ quicksrnet_medium_2x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_medium_2x_w8a8 \
–dataset-path ../Set14/image_SRF_4

# ສໍາລັບ quicksrnet_medium_4x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_medium_4x_w8a8 \
–dataset-path ../Set14/image_SRF_4

ສົມມຸດວ່າເຈົ້າຈະໄດ້ຮັບ PSNRvalue for theaimetsimulated model. ທ່ານ​ສາ​ມາດ​ປ່ຽນ model-config ສໍາ​ລັບ​ຂະ​ຫນາດ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ຂອງ QuickSRNet​, ທາງ​ເລືອກ​ແມ່ນ underaimet-modelzoo/aimet_zoo_torch/quicksrnet/model/model_cards/.

2 ເພີ່ມ Patch

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 = 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(…, input_height, input_width) ຈາກ “Export to ONNX Steps REVISED.docx”

2.7 Re-Run 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 Efficiency Toolkit Documentation, Efficiency Toolkit Documentation, Toolkit Documentation, Documentation

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *