Dokumentationsanweisungen für das Qualcomm Aimet Efficiency Toolkit

KBA-231226181840

1. Umgebung einrichten

1.1. Installieren Sie den Nvidia-Treiber und CUDA

1.2. Installieren Sie die zugehörige Python-Bibliothek

python3 -m pip install –upgrade –ignore-installed pip
python3 -m pip install –installiertes gdown ignorieren
python3 -m pip install –installiertes OpenCV-Python ignorieren
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 –installiertes jax ignorieren
python3 -m pip install –ignore-installed ftfy
python3 -m pip install –installierte Torchinfo ignorieren
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 –installiertes psutil ignorieren

1.3. Klonen Sie aimet-model-zoo

Git-Klon https://github.com/quic/aimet-model-zoo.git
CD Aimet-Modell-Zoo
git checkout d09d2b0404d10f71a7640a87e9d5e5257b028802
export PYTHONPATH=${PYTHONPATH}:${PWD}

1.4. Set14 herunterladen

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

1.5. Ändern Sie Zeile 39 „aimet-model-zoo/aimet_zoo_torch/quicksrnet/dataloader/utils.py“.

ändern
für img_path in glob.glob(os.path.join(test_images_dir, „*“)):
Zu
für img_path in glob.glob(os.path.join(test_images_dir, „*_HR.*“)):

1.6. Auswertung durchführen.

# ausführen unter YOURPATH/aimet-model-run
# Für 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

# Für 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

# Für 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

# Für 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

Angenommen, Sie erhalten den PSNR-Wert für das simulierte Modell von aimet. Sie können die Modellkonfiguration für verschiedene Größen von QuickSRNet ändern, die Option finden Sie unter aimet-modelzoo/aimet_zoo_torch/quicksrnet/model/model_cards/.

2 Patch hinzufügen

2.1. Öffnen Sie „Export to ONNX Steps REVISED.docx“

2.2. Git-Commit-ID überspringen

2.3. Abschnitt 1 Kodex

Fügen Sie den gesamten 1. Code unter der letzten Zeile (nach Zeile 366) hinzu: aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/models.py

2.4. Abschnitt 2 und 3 Code

Fügen Sie den gesamten 2, 3-Code unter Zeile 93 hinzu aimet-model-zoo/aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py

2.5. Schlüsselparameter in der Funktion load_model

Modell = Modell laden(MODEL_PATH_INT8,

MODELLNAME,
MODEL_ARGS.get(MODELLNAME).get(MODELLKONFIG),
use_quant_sim_model=Wahr,
encoding_path=KODIERUNGSPFAD,
quantsim_config_path=Konfigurationspfad,
Kalibrierungsdaten=BILDER_LR,
use_cuda=Wahr,
vor_quantisierung=True,
konvertieren_in_dcr=Wahr)

MODEL_PATH_INT8 = aimet_zoo_torch/quicksrnet/Modell/Gewichte/quicksrnet_small_2x_w8a8/pre_opt_weights
MODEL_NAME = QuickSRNetSmall
MODEL_ARGS.get(MODEL_NAME).get(MODEL_CONFIG) = {'Skalierungsfaktor': 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

Bitte ersetzen Sie die Variablen für unterschiedliche Größen von QuickSRNet

2.6 Änderung der Modellgröße

  1. „input_shape“ in aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/model_cards/*.json
  2. Innerhalb der Funktion load_model(…) in aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/inference.py
  3. Parameter innerhalb der Funktion export_to_onnx(…, input_height, input_width) aus „Export to ONNX Steps REVISED.docx“

2.7 Führen Sie 1.6 erneut aus, um das ONNX-Modell zu exportieren

3. Konvertieren in SNPE

3.1. Konvertieren

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

3.2. (Optional) Nur quantisierte DLC extrahieren

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

3.3. (WICHTIG) Die ONNX I/O ist in der Reihenfolge NCHW; der konvertierte DLC ist in der Reihenfolge NHWC

Dokumente / Ressourcen

Qualcomm Aimet Efficiency Toolkit Dokumentation [pdf] Anweisungen
quicksrnet_small_2x_w8a8, quicksrnet_small_4x_w8a8, quicksrnet_medium_2x_w8a8, quicksrnet_medium_4x_w8a8, Aimet Efficiency Toolkit Dokumentation, Efficiency Toolkit Dokumentation, Toolkit Dokumentation, Dokumentation

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *