Qualcomm Aimet Efficiency Toolkit 문서 지침

한국어: KBA-231226181840

1. 환경 설정

1.1. Nvidia 드라이버 및 CUDA 설치

1.2. 관련 Python 라이브러리 설치

python3 -m pip install –upgrade –ignore-installed pip
python3 -m pip install –ignore-installed gdown
python3 -m pip install –ignore-installed opencv-python
python3 -m pip install –ignore-installed 토치==1.9.1+cu111 토치비전==0.10.1+cu111 토치오디오==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
python3 -m pip install –ignore-installed jax
python3 -m pip install –ignore-installed 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
cd 에이멧-모델-동물원
git checkout d09d2b0404d10f71a7640a87e9d5e5257b028802
PYTHONPATH=${PYTHONPATH}:${PWD}를 내보냅니다.

1.4. Set14 다운로드

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의 경우
python3 aimet_zoo_torch/quicksrnet/평가자/quicksrnet_quanteval.py \
–모델 구성 quicksrnet_small_2x_w8a8 \
–데이터셋 경로 ../Set14/image_SRF_4

# quicksrnet_small_4x_w8a8의 경우
python3 aimet_zoo_torch/quicksrnet/평가자/quicksrnet_quanteval.py \
–모델 구성 quicksrnet_small_4x_w8a8 \
–데이터셋 경로 ../Set14/image_SRF_4

# quicksrnet_medium_2x_w8a8의 경우
python3 aimet_zoo_torch/quicksrnet/평가자/quicksrnet_quanteval.py \
–모델 구성 quicksrnet_medium_2x_w8a8 \
–데이터셋 경로 ../Set14/image_SRF_4

# quicksrnet_medium_4x_w8a8의 경우
python3 aimet_zoo_torch/quicksrnet/평가자/quicksrnet_quanteval.py \
–모델 구성 quicksrnet_medium_4x_w8a8 \
–데이터셋 경로 ../Set14/image_SRF_4

Aimet 시뮬레이션 모델에 대한 PSNR 값을 얻을 것이라고 가정합니다. QuickSRNet의 다른 크기에 대한 모델 구성을 변경할 수 있습니다. 옵션은 Aimet-modelzoo/aimet_zoo_torch/quicksrnet/model/model_cards/에 있습니다.

2 패치 추가

2.1. “ONNX Steps REVISED.docx로 내보내기”를 엽니다.

2.2. git commit id 건너뛰기

2.3. 제1절 코드

마지막 줄(1줄 뒤)에 전체 366. 코드를 추가합니다. aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/models.py

2.4. 제2조 및 제3조 규정

2번째 줄 aimet-model-zoo/aimet_zoo_torch/quicksrnet/evaluators/quicksrnet_quanteval.py 아래에 전체 3, 93 코드를 추가합니다.

2.5. 함수 load_model의 주요 매개변수

모델 = 로드_모델(MODEL_PATH_INT8,

모델 이름,
MODEL_ARGS.get(모델_이름).get(모델_구성),
use_quant_sim_model=참,
인코딩_경로=인코딩_경로,
quantsim_config_path=구성 경로,
교정_데이터=이미지_LR,
use_cuda=참,
before_quantization=참,
(변환_DCR=참)

MODEL_PATH_INT8 = 에이멧_주_토치/퀵스넷/모델/가중치/퀵스넷_소형_2x_w8a8/사전_선택_가중치
모델 이름 = QuickSRNetSmall
MODEL_ARGS.get(MODEL_NAME).get(MODEL_CONFIG) = {'스케일링_인자': 2}
인코딩 경로 = aimet_zoo_torch/quicksrnet/모델/가중치/quicksrnet_small_2x_w8a8/adaround_인코딩
CONFIG_PATH = aimet_zoo_torch/quicksrnet/모델/가중치/quicksrnet_small_2x_w8a8/aimet_config

QuickSRNet의 크기에 따라 변수를 바꿔주세요.

2.6 모델 크기 수정

  1. aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/model_cards/*.json의 "input_shape"
  2. aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/inference.py의 load_model(…) 함수 내부
  3. “ONNX Steps REVISED.docx”의 export_to_onnx(…, input_height, input_width) 함수 내부 매개변수

2.7 ONNX 모델을 내보내기 위해 1.6을 다시 실행합니다.

3. SNPE로 변환

3.1. 변환

${SNPE_ROOT}/bin/x86_64-linux-clang/snpe-onnx-to-dlc \
–입력 네트워크 모델.onnx \
–양자화_재정의 ./model.인코딩

3.2. (선택 사항) 양자화된 DLC만 추출

(선택 사항) snpe-dlc-quant –input_dlc 모델.dlc –float_fallback –override_params

3.3. (중요) ONNX I/O는 NCHW 순서이고 변환된 DLC는 NHWC 순서입니다.

문서 / 리소스

Qualcomm Aimet Efficiency Toolkit 문서 [PDF 파일] 지침
quicksrnet_small_2x_w8a8, quicksrnet_small_4x_w8a8, quicksrnet_medium_2x_w8a8, quicksrnet_medium_4x_w8a8, Aimet Efficiency Toolkit 문서, Efficiency Toolkit 문서, Toolkit 문서, 문서

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *