한국어: 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 모델 크기 수정
- aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/model_cards/*.json의 "input_shape"
- aimet-model-zoo/aimet_zoo_torch/quicksrnet/model/inference.py의 load_model(…) 함수 내부
- “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 문서, 문서 |