Upute za dokumentaciju za Qualcomm Aimet Efficiency Toolkit

KBA-231226181840

1. Podešavanje okruženja

1.1. Instalirajte Nvidia drajver i CUDA

1.2. Instalirajte srodnu Python biblioteku

python3 -m pip instalacija –nadogradnja –ignoriraj instalirani pip
python3 -m pip install –ignoriraj instalirani gdown
python3 -m pip install –ignoriraj instalirani 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 –ignoriraj instalirani jax
python3 -m pip install –ignoriraj instalirani ftfy
python3 -m pip install –ignoriraj instalirani 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 –ignoriraj instalirani psutil

1.3. Klon aimet-model-zoo

git klon https://github.com/quic/aimet-model-zoo.git
cd aimet-model-zoo
git checkout d09d2b0404d10f71a7640a87e9d5e5257b028802
izvoz PYTHONPATH=${PYTHONPATH}:${PWD}

1.4. Preuzmite Set14

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

1.5. Izmijenite red 39 aimet-model-zoo/aimet_zoo_torch/quicksrnet/dataloader/utils.py

promijeniti
za img_path u glob.glob(os.path.join(test_images_dir, “*”)):
to
za img_path u glob.glob(os.path.join(test_images_dir, “*_HR.*”)):

1.6. Pokreni evaluaciju.

# pokrenite pod YOURPATH/aimet-model-run
# Za quicksrnet_small_2x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_small_2x_w8a8 \
–putanja skupa podataka ../Set14/image_SRF_4

# Za quicksrnet_small_4x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_small_4x_w8a8 \
–putanja skupa podataka ../Set14/image_SRF_4

# Za quicksrnet_medium_2x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_medium_2x_w8a8 \
–putanja skupa podataka ../Set14/image_SRF_4

# Za quicksrnet_medium_4x_w8a8
python3 aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py \
–model-config quicksrnet_medium_4x_w8a8 \
–putanja skupa podataka ../Set14/image_SRF_4

pretpostavimo da ćete dobiti PSNR vrijednost za simulirani model. Možete promijeniti konfiguraciju modela za različitu veličinu QuickSRNet-a, opcija je underaimet-modelzoo/aimet_zoo_torch/quicksrnet/model/model_cards/.

2 Dodajte zakrpu

2.1. Otvorite “Izvoz u ONNX korake REVISED.docx”

2.2. Preskoči git commit id

2.3. Odjeljak 1 Kod

Dodajte cijeli 1. kod ispod zadnjeg reda (nakon reda 366) aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/models.py

2.4. Odjeljak 2 i 3 Kod

Dodajte cijeli kod 2, 3 pod redak 93 aimet-model-zoo/aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py

2.5. Ključni parametri u funkciji load_model

model = load_model(MODEL_PATH_INT8,

MODEL_NAME,
MODEL_ARGS.get(MODEL_NAME).get(MODEL_CONFIG),
use_quant_sim_model=Tačno,
encoding_path=ENCODING_PATH,
quantsim_config_path=CONFIG_PATH,
calibration_data=IMAGES_LR,
use_cuda=Tačno,
before_quantization=Tačno,
convert_to_dcr=Tačno)

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) = {'faktor_skaliranja': 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

Molimo zamijenite varijable za različite veličine QuickSRNet

2.6 Modifikacija veličine modela

  1. “input_shape” u aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/model_cards/*.json
  2. Unutar funkcije load_model(…) u aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/inference.py
  3. Parametar unutar funkcije export_to_onnx(…, input_height, input_width) iz “Izvoz u ONNX korake REVISED.docx”

2.7 Ponovo pokrenite 1.6 za izvoz ONNX modela

3. Pretvorite u SNPE

3.1. Pretvori

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

3.2. (Opciono) Ekstrahujte samo kvantizovani DLC

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

3.3. (VAŽNO) ONNX I/O je po NCHW; Konvertovani DLC je u redu NHWC

Dokumenti / Resursi

Dokumentacija za Qualcomm Aimet Efficiency Toolkit [pdfUpute
quicksrnet_small_2x_w8a8, quicksrnet_small_4x_w8a8, quicksrnet_medium_2x_w8a8, quicksrnet_medium_4x_w8a8, Aimet dokumentacija kompleta alata za efikasnost, dokumentacija kompleta alata za efikasnost, dokumentacija kompleta alata, dokumentacija

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *