Anaconda 없이 pytorch 개발환경 구축하기

 

지금까지 수십 여번 AI/Data Analysis 환경을 구축하면서 들었던 의문이 하나 있습니다.

“대체 Anaconda는 뭐하러 깔아야 하는 건가”

 

에 대해서 말이죠.

 

이번 포스트에서는 굳이 Anaconda 없이도 pytorch나 tensorflow 개발 환경을 구축하고 GPU 활용이 가능하다는 것을 알려드리고자 합니다.

 

Anaconda는 필수가 아니다


가상환경을 만드려면 반드시 Anaconda가 필요한가?

 

Anaconda를 사용하는 첫번째 이유가 여러 개발 환경간의 상호 충돌을 방지하기 위함인 건 맞으나, 가상환경은 애시당초 파이썬 자체에서도 제공하고 있는 기능입니다. python venv를 이용하면 Anaconda 때와 별반 차이 없이 가상환경을 생성하고 pip으로 필요한 패키지만 골라 설치하면 됩니다.

$ python -m venv myenv

 

Anaconda와 함께 여러 부가적인 도구들도 같이 설치된다는데…

 

사실 이 것도 그냥저냥… 입니다. Anaconda를 설치하면 prompt, jupyter, spyder IDE 등의 애플리케이션들도 한꺼번에 깔리기는 합니다. 그렇지만 prompt은 어차피 terminal이 대체할 것이고 IDE도 보통 vscode나 pycharm을 많이 쓰니까 의미가 없는데, 그러면 남는게 jupyter 정도거든요.

 

근데 jupyter나 다른 도구, 패키지들이야 어차피 pip으로 설치하면 그만입니다. 아니면 vscode에서 ipython extension을 설치해서 코드를 돌려볼 수도 있는 거구요.

 

제 사견이지만, 굳이 Anaconda를 설치하는데 시간 오래 잡아먹지 말고(꽤나 많이 걸리더라구요) Python으로 직접 가상환경을 만드는게 더 나은것 같습니다. 특히나 Linux 계열에서는 Python이 웬만해선 다 있으니까요.

 

Python 가상환경(venv) 만들기


$ sudo apt-get update && sudo apt-get install python3-venv

 

# python3 -m venv [가상환경 이름/경로]
$ python3 -m venv myenv

# source [가상환경 이름/경로]/bin/activate
$ source myenv/bin/activate

 

계정에 접속할때마다 자동으로 myenv 가상환경을 활성화시키기 위해 .bashrc 파일을 열어 맨 아래에 다음 내용을 삽입합니다.

$ vi ~/.bashrc
# .bashrc

source ~/myenv/bin/activate

 

pip list를 쳐보면, 이제 막 생성한 가상환경이라 패키지 리스트가 일부를 제외하곤 텅 비어있는 상태입니다.

$ pip list

 

필요한 패키지 설치


각 패키지의 버전 정보는 본인이 개발하는 환경에 맞춰 설정하시면 됩니다.

  • torch, torchvision: AI 모델 개발용
  • jupyter: 주피터 노트북
  • pandas: 데이터 처리용
  • matplotlib, scikit-learn: 데이터 분석용
  • gpustat : GPU 모니터링용
$ pip install torch==1.13.1 torchvision==0.14.1 jupyter pandas matplotlib scikit-learn gpustat

 

Jupyter 활성화


로컬 환경에서는 다음과 같이 Jupyter 인터페이스를 실행시킬 수 있습니다.

$ jupyter notebook

 

기본 Jupyter 설정 대신, IP 주소, Port 번호, 외부 연결 허용, 사용자 인증 방식 등을 직접 정의하고자 한다면 아래와 같이 jupyter_notebook_config.py 파일을 생성하여 해당 정보들을 업데이트해주어야 합니다.

$ jupyter notebook --generate-config

$ vi .jupyter/jupyter_notebook_config.py
# .jupyter/jupyter_notebook_config.py

c.ServerApp.ip = '[Jupyter가 설치된 서버의 IP]'
c.ServerApp.port = '[Jupyter에 접속할 때 사용할 포트번호]'
c.ServerApp.allow_origin = '[외부에서 접근 허용할 IP]' # '*'이면 모두 허용

 

Jupyter를 실행시키고, 아래 빨간 박스에 있는 내용을 브라우저 주소창에 검색합니다.

$ jupyter notebook

 

 

GPU 동작 테스트


GPU를 사용하고자 한다면, 앞서 수행했던 모든 과정 이전에 PC에 장착된 그래픽 카드에 맞는 Nvidia 드라이버가 미리 설치되어 있어야 합니다.

 

Python 프롬프트를 실행시켜 GPU가 잡히는지 확인해 봅니다. 필요한 패키지 설치 단계에서 gpustat이라는 패키지도 같이 다운받았다면, 터미널 창을 하나 더 열어 gpustat 명령어로 GPU 할당 여부를 확인할 수 있습니다.

$ python

>>> import torch

>>> torch.cuda.is_available() # True가 나와야 합니다

>>> device = torch.device('cuda')

>>> torch.rand(10).to(device)

 

반응형