1. Pytorch 이란

PyTorch는 주로 신경망같은 기계 학습 모델을 개발하고 훈련하는 데 사용되는 오픈 소스 머신 러닝 라이브러리이다. Facebook AI 리서치팀이 개발했으며 Python으로 작성되어 다른 Python 라이브러리 및 프레임워크와 쉽게 통합할 수 있다.
PyTorch의 몇 가지 주요 기능
- 동적 계산 그래프
다른 딥 러닝 라이브러리에 비해 PyTorch의 가장 큰 장점 중 하나는 dynamic computational graph이다. 계산 그래프는 런타임 중에 즉시 생성되므로 더 많은 유연성을 제공하고 코드를 더 쉽게 디버깅할 수 있다. 이는 사전에 정의되어야 하는 정적 계산 그래프를 사용하는 Tensorflow와 같은 라이브러리와는 대조적이다. - 더 쉬운 디버깅
PyTorch의 동적 계산 그래프를 사용하면 코드를 더 쉽게 디버깅할 수 있다. 런타임에 계산 그래프를 볼 수 있기 때문에 오류가 발생하는 위치를 빠르게 식별하고 수정할 수 있다. 이것은 심층 신경망을 개발하고 훈련할 때 많은 시간을 절약할 수 있다. - 더 직관적인 구문
PyTorch의 구문은 TensorFlow와 같은 다른 딥 러닝 라이브러리보다 직관적이다. PyTorch가 Python을 중심으로 구축되어 있고, 구문이 Python 코드와 더 유사하도록 설계되었기 때문이다. 이것은 특히 Python에 익숙한 개발자들에게 PyTorch 코드를 더 쉽게 읽고 이해할 수 있게 해준다. - GPU에 대한 기본 지원
PyTorch는 GPU에 대한 지원을 기본적으로 제공하므로 CPU에서만 실행되는 것보다 빠르고 효율적이다. 따라서 대규모 데이터 세트에서 심층 신경망을 훈련하는 데 적합하다.
TensorFlow보다 PyTorch를 사용해야 하는 이유는 실제로 사용자의 특정 사용 사례와 개인 선호도에 따라 다르다. 텐서플로우도 여전히 매우 인기 있고 널리 사용되는 딥 러닝 라이브러리이며, 자체적인 강점과 장점을 가지고 있다. 하지만 앞서 언급한 바와 같이 Pytorch의 코드는 Tensorflow보다 직관적이고 디버깅이 쉽다. 또한 다른 라이브러리 및 프레임워크와 호환성이 높기 때문에 학계와 산업계의 연구자들이 딥러닝 및 관련 분야의 첨단 연구에 많이 사용한다. 이제 Pytorch 사용하는 법을 알아보자.
2. Pytorch 설치 및 디버깅
PyTorch는 여러 라이브러리의 버전 의존성이 높은 편이므로 먼저 가상 환경을 구축해주면 나중에 관리하기 편하다. 가상 환경을 구축하는 자세한 방법은 아래 글을 참조하자.
[Python] 파이썬 가상환경 구축 / Build a Virtual Environment
[Python] 파이썬 가상환경 구축 / Build a Virtual Environment
1. 가상환경이란? 가상 환경은 시스템 Python 설치에 영향을 미치지 않고 패키지를 설치하고 코드를 실행할 수 있는 별도의 Python 환경이다. 이 기능은 패키지의 버전과 같이 종속성이 다른 여러 프
dykm.tistory.com
테스트 용으로 test이름의 가상 환경을 적당한 디렉토리에 구축해보자. 나는 기존에 여러 프로젝트를 작업하던 폴더인 Workspace/python/에 test폴더를 만들었다.
cd Workspace/python/
python3 -m venv test
이제 만들어진 test가상 환경을 활성화하자.
source test/bin/activate
이제 PyTorch 공식 웹사이트에서 자신의 환경에 맞는 것을 선택하여 터미널에 설치 스크립트를 입력하자.

PyTorch Build는 Prewiew 버전이 더 최신이지만 호환성 문제가 발생할 수 있기 때문에 Stable을 사용하자. OS는 각자 사용 중인 환경에 맞게, Package는 Conda을 더 추천하지만 Pip도 문제는 없다. 나머지를 선택하고 커맨드를 터미널이나 프롬프트에 입력하자.
pip3 install torch torchvision torchaudio
이제 자동으로 PyTorch 설치가 진행될 것이다.
이렇게 PyTorch을 설치하고 잘 돌아가는지 확인한 다음 글을 마치려고 했다.
그렇게 생각했었으나
설치 중 에러가 발생할 경우
PyTorch 설치 중 한 번도 경험해보지 못한 에러가 발생하였다.
$ pip3 install torch torchvision torchaudio
ERROR: Could not find a version that satisfies the requirement torch (from versions: none)
ERROR: No matching distribution found for torch

원인을 알아보니 파이썬이 너무 최신 버전(3.11.2)이어서 호환성에 문제가 생긴 것이라고 한다. 이 문제를 해결하려먼 이전 버전의 파이썬을 설치한 다음 이전 버전의 파이썬으로 가상 환경을 만들어야 한다. 이전 버전의 파이썬은 Python 공식 웹사이트에서 Looking for a specific release? 항목에서 받을 수 있다.

나는 파이썬 3.11 버전을 사용하기 전에는 파이썬 3.8을 사용하였기 때문에 3.8 버전을 다운받아 설치했다. 파이썬을 설치하는 방법은 다음 링크를 참조하자.
[Python] 파이썬3 설치하기 / Installing Python3
[Python] 파이썬3 설치하기 / Installing Python3
맥에서 파이썬3 설치하기 / Installing Python3 in Mac 파이썬 공식 웹사이트의 다운로드 페이지에서 파이썬 설치에 필요한 패키지 파일을 다운로드할 수 있다. 최신 버전은 2023년 2월 12일 기준 3.11.2이
dykm.tistory.com
이전 버전의 파이썬 설치를 완료했으면 그 버전의 파이썬으로 돌아가는 가상 환경을 구축해야 한다. 가상 환경을 만들 폴더에 들어간 후 다음 명령어를 입력해준다. 가상 환경의 이름은 torch로 정했다.
python3.8 -m venv torch
이번에는 특정 버전을 지정하기 위해 python3.8으로 가상 환경 만드는 스크립트를 입력했다. 다른 버전의 파이썬을 설치하였다면 그 버전의 파이썬 버전을 입력하면 된다. 이제 가상환경을 활성화하자.
source torch/bin/activate
이제 파이썬을 실행시켜서 파이썬의 버전을 확인해보자.

성공적으로 가상 환경을 구축하였다. 이제 다시 PyTorch을 설치하는 커맨드를 실행하자.
pip3 install torch torchvision torchaudio
설치가 완료되면 파이썬을 실행한다음 import torch로 PyTorch 라이브러리를 불러오자. 그 다음 GPU에서 연산이 가능한지도 확인해보자.
python
이제 파이썬 3.11이 아닌 파이썬 3.8이 실행되었다. 다음 코드를 실행해보자.
import torch # import PyTorch
print(torch.__version__) # 설치된 PyTorch 버전 확인
print(torch.backends.mps.is_built()) # 설치된 PyTorch가 mps backend을 지원하는지
print(torch.backends.mps.is_available()) # 사용자의 기기에 사용 가능한 mps 장치가 있는지

이렇게 맥북에서 GPU 가속이 가능한 PyTorch가 설치되었다. 참고로 Nvidia GPU에서 cuda을 사용하듯이 m1칩에서는 mps을 사용한다.
코딩과 관련된 자세한 내용은 추후에 작성해보겠다.
'코딩 환경 > PyTorch' 카테고리의 다른 글
| [PyTorch] GPU을 사용할 때 to(device)와 cuda() 차이 (2) | 2023.02.27 |
|---|---|
| [PyTorch] MNIST 데이터셋 다운로드하고 열어보기 (0) | 2023.02.26 |
| [PyTorch] IProgress not found 에러 해결 방법 (0) | 2023.02.26 |
| [PyTorch] onnx을 이용한 모델 시각화 및 프레임워크 전환 (0) | 2023.02.25 |
| [PyTorch] 파이토치 torchinfo, summary 사용 방법 / 여러 input 설정 (0) | 2023.02.24 |