tunEmvegnomb / yujeon_be

내일배움캠프 프로젝트 유전 백엔드 원격저장소
0 stars 3 forks source link

style-transfer 모델 django와 연결 #16

Open migdracios opened 2 years ago

migdracios commented 2 years ago

유화제작 서비스 딥러닝 모델 style-transfer-pytorch 의 github 원격저장소를 클론하여 모델을 django 프로젝트에서 사용할 수 있게 하는 것을 목적으로 한다.

  1. git clone https://github.com/crowsonkb/style-transfer-pytorch
  2. cd style-transfer-pytorch
  3. pip install -e .
  4. style_transfer CONTENT.jpg STYLE.jpg

깃허브 원격저장소에 작성된 머신러닝 모델을 터미널에서 git clone 메서드로 django 프로젝트에 가져온다. style-transfer-pytorch 폴더에 접근하여, 폴더에 필요한 패키지를 설치한다. style-transfer 모델을 사용할 CONTENT.jpg, STYLE.jpg 파일을 폴더에 넣는다. 이름은 상관없다! style_transfer 메서드를 터미널에서 입력하여 아웃풋 이미지를 생성한다. 이걸 django 프로젝트 view에서 작동하게 해야한다!

django views.py에서 os.system("터미널 명령어")를 입력하여, 모델을 실행할 수 있게 한다. 그것을 위해 깃허브 클론 및 pip install을 마치고, os.system("style_transfer CONTENT.jpg STYLE.jpg")를 작성해 실행시킨다!

migdracios commented 2 years ago

머신러닝 모델을 CPU가 아닌 GPU로 돌리기 위한 셋업

  1. CUDA 버전 확인하기
  2. CUDA 설치하기
  3. CUDA 환경변수 추가하기
  4. pytorch 페이지에서 CUDA 버전에 맞는 패키지를 설치하기
  5. style-transfer 폴더의 style_transfer.py 의 device를 cpu에서 cuda로 변경하기
migdracios commented 2 years ago

머신러닝 모델을 CPU가 아닌 GPU로 돌리기 위한 셋업-1. CUDA 버전 확인하기

머신러닝 모델을 GPU로 실행시키기 위해서는 윈도우에서 NVIDIA CUDA 설치가 필요하다.
개발자가 사용하는 GPU의 버전마다 사용할 수 있는 CUDA 버전 또한 다르기 때문에 무작정 최신 버전을 설치하는 것은 의미가 없다. cuda compute capability페이지에서 GPU버전과 CUDA 버전을 확인한다. 작성자 본인의 경우 Geforce RTX 2070 이라서 Capability 7.5 라는 내용을 확인할 수 있었다. CUDA - Wikipedia 페이지에서 GPU Support 항목에서 GPU Capability 7.5를 지원하는 CUDA 버전을 확인하여 설치할 CUDA 버전을 결정한다. 작성자 본인의 경우 3.5-8.6 가용성을 포함하는 CUDA 버전 11.3을 설치하기로 결정했다.

migdracios commented 2 years ago

머신러닝 모델을 CPU가 아닌 GPU로 돌리기 위한 셋업-2. CUDA 설치하기

머신러닝 모델을 GPU로 실행시키기 위해 필요한 CUDA 버전 11.3을 확인했다. CUDA Toolkit 11.3 페이지로 이동하여, 버전을 설치해 준다. 작성자 본인의 경우 Windows-x86_64-server 2019로 설정해 설치했다.(버전의 경우 이유를 알고 설치한 것은 아니다..) 용량은 약 2.7GB로 설치할 저장공간을 마련하자.

migdracios commented 2 years ago

머신러닝 모델을 CPU가 아닌 GPU로 돌리기 위한 셋업-3. CUDA 환경변수 추가하기

설치한 CUDA를 프로젝트에서 읽을 수 있는 방법은 윈도우 환경변수에 CUDA를 추가해야 한다. 윈도우 환경 변수에 Path > 새로만들기로 추가한다. 기본으로 CUDA를 설치했다면, bin/libnvvp 가 이미 환경변수로 추가되어있다. C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\lib C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\include 두 가지를 환경변수에 추가한다.

migdracios commented 2 years ago

머신러닝 모델을 CPU가 아닌 GPU로 돌리기 위한 셋업-4. Pytorch 패키지 설치하기

CUDA를 GPU버전에 맞춰 설치하고, 환경변수에 연결했다면, 명령 프롬프트에서 nvcc --version을 입력하여 CUDA 연결을 확인할 수 있다. 프로젝트에 적용하기 위해서 Pytorch Get Started 페이지에서 OS, CUDA 버전을 체크하여 설치할 패키지 코드를 확인한다. 터미널에서 패키지 코드를 입력한다. pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

migdracios commented 2 years ago

머신러닝 모델을 CPU가 아닌 GPU로 돌리기 위한 셋업-5. style_transfer.py 의 device를 cpu에서 cuda로 변경

머신러닝 모델을 GPU로 돌리기 위한 CUDA를 설치하고, 프로젝트에서 읽어낼 수 있도록 패키지 코드를 터미널에서 인스톨을 완료했다. style-transfer-pytorch 폴더 안의 style_transfer.py 파일 내부의 device가 cpu로 되어 있는 부분을 cuda로 변경한다. style_transfer CONTENT.jpg STYLE.jpg --device cuda:0 을 입력해 GPU로 모델을 실행한다. 실행해 Using Device가 CUDA 인지 확인한다.

migdracios commented 2 years ago

CUDA 실행 오류 트러블 슈팅

migdracios commented 2 years ago

CUDA 실행 오류 트러블 슈팅