សេចក្តីណែនាំអំពីកញ្ចប់ឧបករណ៍ប្រសិទ្ធភាព Qualcomm Aimet

KBA-231226181840

1. រៀបចំបរិស្ថាន

១.១. ដំឡើងកម្មវិធីបញ្ជា Nvidia និង CUDA

១.២. ដំឡើងបណ្ណាល័យ 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

១.៣. ក្លូន aimet-model-zoo

git ក្លូន https://github.com/quic/aimet-model-zoo.git
ស៊ីឌី aimet-model-zoo
git checkout d09d2b0404d10f71a7640a87e9d5e5257b028802
នាំចេញ PYTHONPATH=${PYTHONPATH}:${PWD}

១.៤. ទាញយកសំណុំទិន្នន័យ Set1.4

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

១.៥. កែប្រែបន្ទាត់ 1.5 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.*”)):

១.៦. ដំណើរការការវាយតម្លៃ។

# ដំណើរការនៅក្រោម 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 ។ អ្នកអាចផ្លាស់ប្តូរគំរូ-កំណត់រចនាសម្ព័ន្ធសម្រាប់ទំហំផ្សេងគ្នានៃ QuickSRNet ជម្រើសគឺ underaimet-modelzoo/aimet_zoo_torch/quicksrnet/model/model_cards/ ។

2 បន្ថែមបំណះ

២.១. បើក "នាំចេញទៅជំហាន ONNX REVISED.docx"

២.២. រំលង git commit id

២.៣. ផ្នែកទី 2.3 លេខកូដ

បន្ថែម 1. កូដទាំងមូលនៅក្រោមបន្ទាត់ចុងក្រោយ (បន្ទាប់ពីបន្ទាត់ 366) aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/models.py

២.៤. ផ្នែកទី 2.4 និងទី 2 លេខកូដ

បន្ថែមលេខកូដ 2, 3 ទាំងមូលនៅក្រោមបន្ទាត់ 93 aimet-model-zoo/aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py

២.៥. ប៉ារ៉ាម៉ែត្រសំខាន់ៗនៅក្នុងមុខងារ 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 ដំណើរការ 1.6 ម្តងទៀតសម្រាប់ការនាំចេញម៉ូដែល ONNX

3. បម្លែងជា SNPE

៣.១. បម្លែង

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

៣.២. (ជាជម្រើស) ស្រង់ចេញតែ DLC បរិមាណប៉ុណ្ណោះ។

(ជាជម្រើស) snpe-dlc-quant –input_dlc model.dlc –float_fallback –override_params

៣.៣. (សំខាន់) 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, Efficiency Toolkit Documentation, Toolkit Documentation, Documentation

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *