머신러닝에 적합한 도구: PyTorch
PyTorch: 딥러닝 최적화 프레임워크
PyTorch는 2016년에 출시된 딥러닝 프레임워크로, 신경망 모델 구축과 훈련에 특화되어 있다. 파이썬 기반으로 쉽게 배울 수 있고, 특히 즉시 실행 기능을 통해 디버깅이 용이하다. GPU 병렬 연산을 지원하여 대규모 데이터 처리에 강점이 있다. PyTorch는 심층 신경망 작업에서 매우 유용하며, GPU 가속을 통해 처리 성능을 높여준다. CUDA와 cuDNN 같은 API를 활용해 속도를 극대화할 수 있다.
◆ 장점
- 쉽고 직관적: 텐서플로우보다 접근이 쉬우며, 즉시 실행으로 디버깅을 쉽게 할 수 있다.
- 빠른 속도: GPU 가속 덕분에 복잡한 계산을 빠르게 처리.
- Dynamic Graph: 모델 구조를 변경할 때 유연성을 제공.
★ 정정!
파이토치는 머신러닝, 딥러닝에 쓰이는 프레임워크이고, 비교되는 툴로 Keras, Tensorflow 등이 있다.
VS Code와 Jupyter notebook은 개발환경 또는 코드를 작성하는 도구이다.
VS Code: 코드 작성의 강력한 도구
VS Code는 범용 코드 편집기지만, 확장성이 뛰어나 Python, PyTorch 등의 라이브러리를 잘 통합할 수 있다. 디버깅, 코드 작성, 협업에 유용하다. 그러나 머신러닝 전용 도구는 아니기 때문에, 주로 개발 환경에서 사용되는 편이다. 아나콘다와 함께 사용하면 개발 효율성을 크게 높일 수 있다.
◆ 장점
- 확장성: PyTorch, Jupyter와 같은 다양한 도구와 통합 가능.
- 편리한 디버깅 기능: 코드 오류를 추적하고 수정하기 좋음.
Jupyter Notebook: 데이터 분석과 빠른 프로토타이핑
Jupyter Notebook은 인터랙티브한 환경에서 코드 실행과 시각화, 문서화가 가능하여, 머신러닝 실험이나 데이터 탐색에 자주 사용된다. 주로 데이터를 실시간으로 탐색하거나 모델을 빠르게 테스트할 때 유리하다. 하지만 대규모 모델 훈련에는 다소 제약이 있을 수 있다.
◆ 장점
- 인터랙티브한 실행: 실시간으로 코드를 수정하고 실행 결과를 바로 확인 가능.
- 빠른 프로토타이핑: 아이디어 테스트와 데이터 시각화에 적합.
결론: 어떤 프레임워크가 적합할까?
딥러닝 모델 개발에 중점을 둔다면, PyTorch가 가장 적합한 선택이다. PyTorch는 GPU 가속 및 신경망 훈련에서 최고의 성능을 발휘한다.
실험과 빠른 테스트를 원한다면, Jupyter Notebook과 함께 PyTorch를 사용하는 것이 이상적이다.
코드 작성 및 디버깅에 편리함을 더하고 싶다면, VS Code와 함께 사용하는 것이 좋다.
Pytorch 설치하기
1. Python 설치
먼저, PyTorch를 사용하려면 Python이 설치되어 있어야 한다. Python 공식 웹사이트에서 Python을 다운로드하고 설치.
2. Anaconda 설치 (선택 사항)
Anaconda는 데이터 과학 및 머신러닝에 적합한 환경을 제공하며, Python 패키지를 관리하기 쉽게 해준다. Anaconda 공식 웹사이트에서 다운로드할 수 있다.
★ 추가 내용!!
CUDA, cuDNN을 설치하기 전에 반드시 확인해야 할 것이 있다!
그것은 현재 나의 사용환경에 맞는 버전을 다운 받아야 한다는 것인데, 그것을 확인하는 방법은 하단의 사이트에 들어가서
https://www.tensorflow.org/install/source_windows?hl=ko#tested_build_configurations
현재 내 PC에 설치된 텐서플로우 버전, 파이썬 버전을 확인하고, 그에 맞는 CUDA와 cuDNN 버전을 다운 받으면 된다.
★ 추가 내용2!!
아나콘다(anaconda)가 설치되어 있을 경우, 가상환경을 통해 설치할 수 있는데, 이 방법은 이미 다른 포스팅에 작성했으므로, 해당 포스트에서 확인하면 된다.
다행히도(!), 내 노트북에는 NVIDIA GPU가 내장되어 있어 CUDA 및 cuDNN 을 설치할 수 있다.
왜 다행이라고 하는지는 시간 있으신 분들은 하단 글 참고.
사족이 너무 길었고, 나머지 과정들을 재개해본다.
3. NVIDA CUDA 설치하기
NVIDIA CUDA (Compute Unified Device Architecture)는 NVIDIA의 GPU(그래픽 처리 장치)를 사용해 병렬 컴퓨팅을 효율적으로 수행하기 위한 플랫폼이자 API이다. 주로 대규모 연산 작업에 사용되며, 딥러닝, 인공지능, 과학적 시뮬레이션 등에서 속도를 크게 향상시킨다. CUDA는 개발자들이 GPU의 강력한 성능을 활용하여 대규모 데이터를 처리하는 프로그램을 쉽게 작성할 수 있도록 도와주며, PyTorch와 같은 머신러닝 라이브러리에서도 GPU 가속을 위해 사용된다.
CUDA 툴킷을 설치하기 이전에, 현재 사용하는 GPU의 정보를 알기 위해
cmd(명령 프롬프트)를 열고 하단의 명령어를 입력한다.
nvidia-smi -q
명령어를 CMD에 입력하면 GPU의 현재 상태를 확인할 수 있다. 여기에는 메모리 사용량, 온도, 드라이버 버전, 팬 속도 등이 포함된다.
GPU 이름은 NVIDIA의 GeForce GTX 1070이다.
그래서 CUDA 버전과 cuDNN 버전을 어떤 것을 설치해야 하는지 구글링을 열심히 했지만, 더 헷갈려서 그냥 챗gpt에 물어봤다.
<챗GPT>
GeForce GTX 1070에 적합한 CUDA 및 cuDNN 버전은 NVIDIA에서 공식적으로 제공하는 호환성 목록을 통해 확인할 수 있습니다. 일반적으로 GTX 1070은 다양한 CUDA 버전과 호환되며, cuDNN은 CUDA 버전에 맞추어 선택하면 됩니다.
GTX 1070은 Pascal 아키텍처 기반이므로, 최신 CUDA와 cuDNN 버전을 사용할 수 있지만, 사용 중인 소프트웨어나 딥러닝 프레임워크(TensorFlow, PyTorch 등)의 호환성을 고려해야 합니다.
GTX 1070 GPU에 맞는 CUDA 및 cuDNN 버전: CUDA 버전: 8.0 ~ 12.x (최신 버전까지 지원) Pascal 아키텍처는 CUDA 8.0 이상을 지원하므로, 최신 CUDA 버전인 12.x도 호환됩니다.
최신 기능을 활용하려면 가능한 최신 버전을 사용하는 것이 좋습니다. cuDNN 버전: 7.x ~ 8.x (CUDA 버전에 맞춰 선택) cuDNN은 CUDA 버전에 맞게 선택해야 합니다. 예를 들어, CUDA 11.x를 사용한다면 cuDNN 8.x를 사용하는 것이 좋습니다.
자세한 호환성 정보 NVIDIA 공식 웹사이트의 CUDA Toolkit 호환성 목록에서 GTX 1070에 맞는 CUDA 및 cuDNN 버전의 세부 정보를 확인할 수 있습니다.
CUDA, cuDNN 선택 예시: CUDA 11.2와 cuDNN 8.1.0은 GTX 1070에서 잘 작동하며, TensorFlow나 PyTorch 같은 딥러닝 프레임워크에서도 호환성이 좋습니다.
라고 친절히 알려주기도 했고, 상단의 이미지에서
tensorflow_gpu-2.10.0
파이썬 3.9
cuDNN 8.1
CUDA 11.2
의 조합을 알려주기도 해서 해당 버전으로 다운받기로 했다.
다운받은 .exe 파일을 실행하여 설치를 시작하면 된다.
4. NVIDA cuDNN 라이브러리 설치하기
앞서 본대로 cuDNN 은 8.1 버전을 설치하기로 했으므로, 하단의 사이트에 들어가서
CUDA 11.0, 11.1 및 11.2용 cuDNN v8.1.1(2021년 2월 26일) 다운로드
다운 받은 압축 파일을 압축 해제하고,
C: > Program Files > NVIDIA GPU Computing Toolkit > CUDA > v11.2 폴더로 붙여넣기 한다.
그리고 리부팅을 한 번 하고
5. PyTorch 설치 명령어
이제 PyTorch를 설치할 수 있다. 먼저 PyTorch 공식 설치 페이지로 이동하여 시스템 환경에 맞는 설치 명령어를 찾아야 한다.
나는 파이토치 사이트에 들어가서 봤지만 CUDA 11.2 버전은 따로 나와 있지 않아 빠르게 챗GPT에 물어봤다.
최신 버전의 PyTorch를 CUDA 11.2에 맞춰 설치해주는 명령어
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu112
5. 설치 확인
설치가 완료되면 Python 인터프리터(필자는 VS Code)를 열고 다음 명령어를 입력하여 PyTorch가 제대로 설치되었는지 확인할 수 있다.
import torch
print(torch.__version__)
위 명령어가 실행되어 버전이 출력되면, PyTorch 설치하고 사용할 준비가 완료된다.
추가로, PyTorch가 GPU 버전으로 설치되었는지 확인하려면 다음 명령어를 사용하면 된다.
import torch
print(torch.cuda.is_available())
이 명령어가 True를 반환하면 GPU 버전이 설치되었고, PyTorch가 GPU를 사용할 수 있음을 의미한다.
만약 False가 반환되면 PyTorch가 GPU를 인식하지 못한 상태이므로, GPU 버전이 설치되지 않았거나 CUDA가 올바르게 설정되지 않은 것이다.
GPU 버전이 제대로 설치가 안 되어 원인을 찾아봐야 한다.
내가 생각하기에 환경변수가 제대로 설정된 거 같지 않아서 체크를 해봐야 할 거 같다.
6. 환경변수 설정
시스템 속성 > 사환경변수 편집 > 사용자 변수 편집 > Path - 새로만들기 - 하단의 3개 Path 추가
확인 누르고, 재부팅하여 다시 해봤는데도 False 가 나온다.
방법1. 파이토치 다른 버전으로 설치 (실패)
cuda 버전 11.2 / NVIDIA GeForce GTX 1070 / 파이토치 2.4.1 / cuDNN 8.1.1 중에 어떤 게 호환이 안 되는 것인지 가늠이 안 되어 검색해보니 파이토치가 GPU를 지원하지 않는 버전으로 다운 받아졌을 수도 있대서 파이토치를 지우고 GPU가 있는 버전으로 재설치. (해당 방법도 실패)
기존 파이토치 삭제
pip uninstall torch torchvision torchaudio
방법2. CUDA 다른 버전으로 재설치
[이전 버전 삭제하는 방법]
- 기존에 설치된 NVIDIA 모두 삭제 (제어판)
- Program Files 에 있는 NVIDIA 관련 파일 모두 삭제
구글링을 하다 찾은 건데, 나의 경우 컴퓨팅은 파스칼(6.X)에 속하여 CUDA SDK 버전은 8.0~12.0에 속한다. 따라서, CUDA 버전을 11.8로 하고, cuDNN도 해당 버전에 맞는 걸로 재설치를 시도해본다. (8.6.0)
설치하는 방법은 상단에 나와있으므로 생략.
- CUDA 설치
- cuDNN 압축파일 압축 해제하여 CUDA 폴더에 옮겨넣기
- 환경변수 설정하기
- 파이토치 설치하기 (파이토치 사이트에서 명령어 복사하여 cmd에 붙여넣기)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
- 재부팅
- VS Code 에서 명령어로 확인하기
결과는?!
성공!!! (몇 시간 만에 성공이라 너무너무 뿌듯하다)
[참고한 사이트]
'[파이썬 Projects] > <파이썬 머신러닝>' 카테고리의 다른 글
[머신러닝] 회귀(Regression) (2) | 2024.09.21 |
---|---|
[머신러닝] 스태킹 앙상블 (0) | 2024.09.21 |
[머신러닝] Intel GPU로 Pytorch 구동하기(는 안할게..) (1) | 2024.09.09 |
[머신러닝] 머신러닝에 적합한 도구, Pytorch 설치하기(CPU버전) (1) | 2024.09.08 |
[머신러닝] 차원의 저주(Curse of Dimensionality)란? (1) | 2024.09.03 |