Qualcomm Aimet Efficiency Toolkit डॉक्युमेंटेशन सूचना

KBA-231226181840

1. वातावरण सेटअप करा

१.१. Nvidia ड्राइव्हर आणि CUDA स्थापित करा

१.२. संबंधित पायथन लायब्ररी स्थापित करा

python3 -m pip install –upgrade –ignore-install pip
python3 -m pip install -ignore-install gdown
python3 -m pip install -ignore-installed 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 pip install -ignore-install jax
python3 -m pip install -ignore-install ftfy
python3 -m pip install -ignore-install 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 -ignore-install psutil

१.३. क्लोन aimet-मॉडेल-प्राणीसंग्रहालय

git क्लोन https://github.com/quic/aimet-model-zoo.git
cd aimet-मॉडेल-प्राणीसंग्रहालय
git checkout d09d2b0404d10f71a7640a87e9d5e5257b028802
निर्यात PYTHONPATH=${PYTHONPATH}:${PWD}

१.४. सेट1.4 डाउनलोड करा

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 साठी):

१.६. मूल्यांकन चालवा.

# 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 \
–मॉडेल-कॉन्फिगरेशन quicksrnet_medium_2x_w8a8 \
–डेटासेट-पथ ../Set14/image_SRF_4

# quicksrnet_medium_4x_w8a8 साठी
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–मॉडेल-कॉन्फिगरेशन quicksrnet_medium_4x_w8a8 \
–डेटासेट-पथ ../Set14/image_SRF_4

समजा तुम्हाला नक्कल केलेल्या मॉडेलसाठी PSNR व्हॅल्यू मिळेल. QuickSRNet च्या विविध आकारासाठी तुम्ही मॉडेल-कॉन्फिगरेशन बदलू शकता, पर्याय underaimet-modelzoo/aimet_zoo_torch/quicksrnet/model/model_cards/ आहे.

2 पॅच जोडा

२.१. "ONNX Steps REVISED.docx वर निर्यात करा" उघडा

२.२. गिट कमिट आयडी वगळा

२.३. कलम 2.3 कोड

संपूर्ण 1. कोड शेवटच्या ओळीखाली (ओळ 366 नंतर) जोडा aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/models.py

२.४. कलम 2.4 आणि 2 कोड

ओळ 2 aimet-model-zoo/aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py अंतर्गत संपूर्ण 3, 93 कोड जोडा

२.५. फंक्शन लोड_मॉडेल मधील प्रमुख पॅरामीटर्स

मॉडेल = लोड_मॉडेल(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=True)

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) = {'स्केलिंग_फॅक्टर': 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. aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/model_cards/*.json मध्ये “इनपुट_शेप”
  2. aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/inference.py मध्ये इनसाइड फंक्शन load_model(…)
  3. Export_to_onnx(…, input_height, input_width) मधील पॅरामीटर "ONNX Steps REVISED.docx वर निर्यात करा"

2.7 ONNX मॉडेल निर्यात करण्यासाठी 1.6 पुन्हा चालवा

3. SNPE मध्ये रूपांतरित करा

3.1. रूपांतरित करा

${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 Aime Efficiency Toolkit डॉक्युमेंटेशन [pdf] सूचना
quicksrnet_small_2x_w8a8, quicksrnet_small_4x_w8a8, quicksrnet_medium_2x_w8a8, quicksrnet_medium_4x_w8a8, Aimet Efficiency Toolkit डॉक्युमेंटेशन, Efficiency Toolkit Documentation, Documentation Documentation, Toolkit

संदर्भ

एक टिप्पणी द्या

तुमचा ईमेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित आहेत *