تعليمات توثيق مجموعة أدوات كفاءة Qualcomm Aimet

KBA-231226181840

1. إعداد البيئة

1.1. تثبيت برنامج تشغيل Nvidia وCUDA

1.2. تثبيت مكتبة Python ذات الصلة

python3 -m pip install –upgrade –ignore-installed pip
python3 -m pip 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 –تجاهل تثبيت jax
python3 -m pip install –تجاهل تثبيت ftfy
python3 -m pip install –ignore-installed 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-installed psutil

1.3. استنساخ aimet-model-zoo

نسخة طبق الأصل من git https://github.com/quic/aimet-model-zoo.git
سي دي ايميت موديل زو
git checkout d09d2b0404d10f71a7640a87e9d5e5257b028802
تصدير PYTHONPATH=${PYTHONPATH}:${PWD}

1.4. تنزيل المجموعة 14

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
بايثون3 aimet_zoo_torch/quicksrnet/المقيّمون/quicksrnet_quanteval.py \
–نموذج-تكوين quicksrnet_small_2x_w8a8 \
–dataset-path ../Set14/image_SRF_4

# لـ quicksrnet_small_4x_w8a8
بايثون3 aimet_zoo_torch/quicksrnet/المقيّمون/quicksrnet_quanteval.py \
–نموذج-تكوين quicksrnet_small_4x_w8a8 \
–dataset-path ../Set14/image_SRF_4

# لـ quicksrnet_medium_2x_w8a8
بايثون3 aimet_zoo_torch/quicksrnet/المقيّمون/quicksrnet_quanteval.py \
–نموذج-تكوين quicksrnet_medium_2x_w8a8 \
–dataset-path ../Set14/image_SRF_4

# لـ quicksrnet_medium_4x_w8a8
بايثون3 aimet_zoo_torch/quicksrnet/المقيّمون/quicksrnet_quanteval.py \
–نموذج-تكوين quicksrnet_medium_4x_w8a8 \
–dataset-path ../Set14/image_SRF_4

افترض أنك ستحصل على قيمة PSNR لنموذج المحاكاة المستهدف. يمكنك تغيير تكوين النموذج لأحجام مختلفة من QuickSRNet، والخيار موجود ضمن aimet-modelzoo/aimet_zoo_torch/quicksrnet/model/model_cards/.

2 إضافة التصحيح

2.1. افتح "Export to ONNX Steps REVISED.docx"

2.2. تخطي معرف التزام git

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. المعلمات الرئيسية في دالة load_model

النموذج = load_model(MODEL_PATH_INT8،

اسم النموذج،
MODEL_ARGS.get(MODEL_NAME).get(MODEL_CONFIG)،
استخدم_quant_sim_model=صحيح،
مسار الترميز=ENCODING_PATH،
quantsim_config_path=CONFIG_PATH،
بيانات المعايرة=IMAGES_LR،
استخدام_cuda=صحيح،
قبل_التكميم=صحيح،
تحويل إلى 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) = {'عامل التوسع': 2}
مسار الترميز = 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

3.1. تحويل

${SNPE_ROOT}/bin/x86_64-linux-clang/snpe-onnx-to-dlc \
–نموذج شبكة الإدخال.onnx \
–quantization_overrides ./model.encodings

3.2. (اختياري) استخراج DLC الكمي فقط

(اختياري) snpe-dlc-quant –input_dlc model.dlc –float_fallback –override_params

3.3. (هام) يتم ترتيب إدخال/إخراج ONNX حسب ترتيب NCHW؛ ويتم ترتيب DLC المحول حسب ترتيب NHWC

المستندات / الموارد

توثيق مجموعة أدوات كفاءة Qualcomm Aimet [بي دي اف] تعليمات
quicksrnet_small_2x_w8a8، quicksrnet_small_4x_w8a8، quicksrnet_medium_2x_w8a8، quicksrnet_medium_4x_w8a8، وثائق مجموعة أدوات الكفاءة من Aimet، وثائق مجموعة أدوات الكفاءة، وثائق مجموعة الأدوات، الوثائق

مراجع

اترك تعليقا

لن يتم نشر عنوان بريدك الإلكتروني. تم وضع علامة على الحقول المطلوبة *