파이썬 딥러닝 개발환경
1. PyTorch 설치
대학원을 다닐 때는 ML(Machine Learning) 과정이 재미있어서 대부분 과목을 신청해서 들었는데, 막상 회사에서는 인공지능과 좋은 인연이 아니었던 것 같다. 딥러닝이 있기 전에 ANN(Artificial Neural Network)으로 시작한 프로젝트도 마지막에는 결과가 CBR(Case Based Reasoning) 보다 좋지 않아 모델을 바꿨고, 몇 년 전에는 자유변형 물체를 Detection 하고 Instance Segmentation까지 하는 요구사항에 몇 가지 딥러닝 모델을 조합해서 앙상블(Ensemble)까지 해 봤지만 원하는 만큼 결과가 깔끔하지 않았던 것 같다. 사실 지금 나온 삼성 핸드폰을 써도 그때 만든 모델보다 잘 나오지 않는데, 개인적으로 기대치가 좀 높은 것 같기도 하다.
이번에는 좀 더 간단한 요구사항을 가지고 인공지능 프로젝트를 시작하려고 RTX 30시리즈 그래픽카드가 있는 노트북과 성능은 좀 떨어지지만 학습용으로는 사용할 만한 Nvidia보드를 사용해 개발과 학습 환경을 만들어 보기로 했다.
1. PyTorch 설치
현재 인공지능 개발에 가장 많이 사용하고 있는 프레임워크는 아마 Tensorflow + Keras, PyTorch일 것이다. 구글에서 만들어서 공개한 Tensorflow는 Keras 백엔드를 같이 사용하는 경우가 많고, Keras를 이용하면 딥러닝 모델을 사람이 보다 직관적이고 이해할 수 있도록 표현할 수 있다. 반면, 페이스북(X)에서 만든 PyTorch는 파이썬 개발 방법과 좀 더 가까워서 파이썬 디버거를 사용할 수 있고 유연하게 모델을 구현할 수 있지만, 좀 더 프로그램같이 만들어야 한다. 그래서 Keras와 Pytorch를 한번에 사용할 수 있는 개발환경을 구성하고, 모델을 탐색해 보고 최종적으로 기술 스택을 정하기로 했다.
인공지능은 빠르게 발전하는 분야이어서, 프레임워크의 버전이 빠르게 변한다. 버전마다 포함되는 함수나 모델도 다르고 호환되는 하드웨어도 다르다 보니 호환성 문제가 발생한다. 물론 예전만큼 까다롭지는 않지만...
Keras의 버전 호환성을 확인하려면
PyTorch의 버전 호환성을 확인하려면
NVIDIA Tensorflow의 버전호환성을 확인하려면 아래 페이지의 Release Note를 확인하면 된다.
a. Keras를 PyTorch위에 사용하는 경우
Keras를 확인해 보면 현재 Torch 2.1.0까지 지원한다고 되어 있다. PyTorch는 현재 2.4.1이고 CUDA는 버전은 11.8에서 12.4까지 지원한다. Keras의 Backend를 PyTorch로 사용하려면 PyTorch를 2.1.0으로 낮추고 CUDA는 11.8이나 12.1을 사용해야 한다. 그래서 가능한 버전을 조합하면
Keras version | PyTorch version | CUDA version |
3.0 | 2.1.0 | 11.8, 12.1 |
으로 최신버전의 프레임워크를 사용하는 데에는 제한이 있어 보인다.
b. Keras를 Tensor flow위에 사용하고 PyTorch는 분리하는 경우
Keras 3.0은 tensorflow 2.16.1과 호환되는 것으로 공홈에 나와있다. NVIDIA Optimized Tensorflow의 최신 버전은 24.09인데 Tensorflow 버전 2.16.1과 호환되는 것으로 나와있지만 CUDA버전이 12.6.1이다. PyTorch의 최신버전은 CUDA 12.4까지 지원하므로, NVIDIA Optimized Tensorflow는 24.05까지 가능하고 이 버전의 Tensorflow호환 버전은 2.15.0이다. 그래서 가능한 버전을 조합하면
Keras version | PyTorch version | Tensorflow version | CUDA version |
3.0 | 2.4.1 | 2.15.0 (NVIDIA 24.05) | 12.4.1 |
으로 Keras위에 PyTorch를 올리는 것보다는 최신 버전을 사용할 수 있는 것으로 보인다.
하지만, 딥러닝에 필요한 cuDNN의 Compatiblity를 확인해 보면 Volta 아키텍처가 아닌 GPU를 사용하는 경우 CUDA 버전 11.8을 사용하도록 권장하고 있고, 내 노트북의 아키텍처는 Amphere로 확인되기 때문에 다시 CUDA 버전을 11.8로 낮추면 더 이상 Tensorflow버전에서 높은 버전의 Keras를 사용할 수 없다. 그래서 a.Keras를 PyTorch위에 사용하는 방식으로 바꾸면 PyTorch버전은 낮아지지만 아래와 다양한 버전으로 테스트 해 볼 수 있다.
Keras version | PyTorch version | Tensorflow version | CUDA version | cuDNN version |
3.0 | 2.1.0 | 2.10.0 (NVIDIA 22.10) | 11.8.0 | 9.4.0 |
c. CUDA, cuDNN 설치
먼저 CUDA 11.8.0을 아래 페이지에서 찾아 다운로드한다.
사용하고 있는 컴퓨터의 환경에 맞게 선택하고 다운로드 한 다음 설치한다.
설치를 진행할 때 따로 옵션을 지정하지 않고 "Express"로 설치해도 무난하기 때문에 "Next"만 계속 누른 다음 설치하면 된다. 중간에 Visual Studio와 관련된 메시지는 무시해도 된다. 설치가 끝나면 Win + R을 누르고 "sysdm.cpl"을 실행하고, "고급"탭 아래 "환경 변수(N)..."에 "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin"를 PATH에 추가한다.
설치된 CUDA의 version을 확인하려면 nvcc로 확인한다.
nvcc --version
cuDNN은 아래 페이지에서 다운로드한다.
CUDA와 마찬가지로 사용하고 있는 컴퓨터의 환경에 맞게 선택하고 다운로드한다.
CUDA와 마찬가지로 선택을 변경할 필요가 없기 때문에 "Express"를 선택하고 "Next"를 계속 눌러 설치했다.
d. PyTorch 설치
2.1.0 버전의 PyTorch를 설치해야 하기 때문에 "Previous versions PyTorch >"링크를 선택하고 아래로 내리면 설치에 필요한 아래 명령을 찾을 수 있다.
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118
만일 파이썬 최신 버전 3.12.x를 사용하고 있다면 아래와 같이 패키지를 찾을 수 없다고 나오기 때문에, 파이썬 버전을 내려서 설치해야 한다.
여러 버전의 파이썬을 사용하는 방법과 파이썬의 버전을 변경하는 방법은 아래 링크를 참고하면 된다.
설치가 진행되면 아래와 같은 화면이 나온다.
이제 PyTorch가 잘 설치되었는지 확인해 본다.
'윈도우 개발환경' 카테고리의 다른 글
엔비디아 Jetson Xavier; 5. VNC로 쉽게 연결하기 (1) | 2024.11.11 |
---|---|
React Native로 PDF Viewer 앱 만들기; 1. React Native 개발 환경 설치 (2) | 2024.11.10 |
엘라스틱서치(ELK)로 만드는 모니터링 시스템; 4. Logstash - 통합, 운영 (3) | 2024.09.20 |
GitHub copilot; 프로그램을 대신 작성해 주는 AI (12) | 2024.09.16 |
엘라스틱서치(ELK)로 만드는 모니터링 시스템; 2. Metricbeat- 시스템관리 (7) | 2024.09.11 |