_썸네일 이미지 출처:
https://www.geeksforgeeks.org/how-to-setup-anaconda-for-data-science/
이게 뭐가 그리 특별할까? 많은 라이브러리?
ANACONDA가 특별한 이유는 가상환경 생성이 가능하기 때문이다.
실험실이라고도 부르기도 한다. 이러한 가상환경이 갖는 특별함은 특정한 가상환경 내에서 자신이 원하는 패키지, 라이브러리, 파이선 등을 버전 별로 설치할 수 있다는 점에 있다.
Anaconda promt, git Bash, (mac) iterm2 등에서 다음과 같이 입력을 하면 가상환경이 만들어진다.
conda create -n test python=3.8
test 라는 이름의 가상환경이 python 3.8 버전으로 생성이 되는 것이다.
conda create text python=3.6
이 명령어는 text 라는 이름의 가상환경이 python 3.6 버전으로 생성이 된다. test 라는 conda 가상환경에서는 tensorflow 2.2~ 2.5 까지 설치가 가능하지만, theano, pyMC3 패키지는 설치가 안 된다. 반대로 text라는 conda 가상환경에서는 theaono, pyMC3와 tensorflow도 설치가 가능하다.
예시로 든 test, text 라는 가상환경에서 알 수 있듯이. 각 라이브러리, 패키지 등 버전이 서로 호환이 되지 않으면 실행이 되지 않고 에러가 나기 마련이다. 그렇기 때문에, '가상환경'이라는 공간을 만들어 물리적으로 분리해주는 것이다. 그렇지 않다면, 매번 컴퓨터를 밀어야하는 슬픈 사태가 자주 반복될 것이다.
가상환경을 만들었다면, 이제 라이브러리를 설치해보자. (인터넷이 연결 필수)
1) 가상환경 생성 (light 라는 이름의 python3.8버전으로 가상환경생성)
conda create -n light python=3.8
2) 설치 후, 가상환경 'light' 시작
conda activate light
3) conda install 명령어로 설치
conda install jupyter numpy pandas scikit-learn scipy statsmodels matplotlib seaborn
위 명령어로 jupyter notebook, numpy, pandas, scikit-learn, scipy, statsmodels, matplotlib, seaborn 등 데이터분석에 필요한 기초적인 라이브러리를 설치를 할 수 있다.
기타 라이브러리 설치(옵션)
본인이 원하면, missingno, patsy, spacy, pydot, opencv, pypng, pillow, librosa, requests, beautifulsoup4, networkx, graphviz, nltk 등 conda install로 설치가 가능하다.
conda install missingno patsy spacy pydot opencv pypng pillow librosa requests beautifulsoup4 networkx nltk
4) pip install
conda install 명령어로 설치가 되지 않는 것들이 있다. 예를 들면, pgmpy가 대표적이다. conda 가상환경이 돌아가고 있는 상태에서 다음과 같은 명령어로 설치가 가능하다.
pip install pgmpy
tensorflow, hmmlearn, ... 등 pip install 명령어로 설치해야한다.
5) jupyter notebook
가상환경 작동 중인 상태에서 jupyter notebook 을 입력하고 enter 키를 누르면, 본인 PC의 기본 브라우저로 설정되어있는, 웹 브라우저로 실행이 될 것이다.
jupyter notebook
6) jupyter notebook 종료
웹브라우저 창에서 우측 상단의 'Quit'을 누르거나, Window10에서는 Anaconda Prompt에서, Mac에서는 Terminal(or iTerm2)에서 'Ctrl+C'를 누르면 종료가 된다.
7) 가상환경 종료
라이브러리나 패키지를 다운받아 설치하거나 삭제할 것이 아니라면, 가상환경을 종료하자.
conda deactivate
이 명령어로 가상환경 종료가 가능하다.
최고의 성능
쉽게 말하면, jupyter notebook을 클라우드 형태로 무료로 이용할 수 있다. 그런데 버벅거리지도 않고, 되려 빠르다. 이런 걸 구글에서 무료로 이용할 수 있도록 제공해준다. 일반적인 머신러닝이나 데이터 분석도 가능하다. (일부 패키지나 설정은 접속할 때마다 설정하고 다운받아야하는 귀찮음이 동반된다.)
딥러닝으로 cnn, dnn, ... 등 신경망 모델을 만들어서 돌릴 때, 시간이 많이 걸리고, 컴퓨터에 많은 부담을 준다. PC방급이거나 그 이상의 PC를 가진 사용자라면, GPU로 하드웨어가속을 하여 빠른 연산을 할 수 있다. 성능이 별로 좋지 않은 노트북이나 PC를 가진 사용자가 딥러닝의 신경망 모델을 돌리고 싶을 때, Google colab을 이용한다. 빠르고 안정적인 결과를 얻을 수 있다.
(Google입장에서는 )당연하지만 치명적인 단점
하지만, 사용자가 원하는 '시간'에, '원하는 시간'동안 최고의 gpu를 제공해주지 않는다. 즉, 런타임 제약시간이 있다. 일정시간동안만 사용할 수가 있고, 이 '일정시간'은 무료 사용자의 경우 많이 변동이 크다. 필자의 경우, 하루 쓰고 3일동안 못 쓰고 기다린 적도 있다. 이것이 치명적인 단점이다.
물론 'colab_pro'라는 월 9.99$ 유료플랜이 있다. colab_pro를 이용하는 이들은 무료사용자에 비해, GPU 가속을 더 오랫동안, 더 안정적으로 사용이 가능하다. 실제로 (구글링이나 검색해보면) 사용하다가 어떠한 이유(GPU 리소스 사용량 제한.. 등)로 사용이 불가하다는 팝업창이 뜨는데, 보통 6시간 ~ 8시간만 기다리면 다시 사용할 수 있다고 한다.
이 점을 꼭 숙지하길 바란다.
Google colab만 있을까?
외에도 jetbrain의 Datalore(pycharm과 연동이 되며, 유료플랜, 무료플랜이 있다.), goorm.io 의 IDE(jupyter 뿐만 아니라 다양한 프로그래밍 언어도 지원이 된다. 하지만 GPU 지원은 공식적으로 아직 지원되지 않는다.), Kaggle, ... 등 다양한 곳이 있다. 하지만, 가성비로는 Google colab이 최고다.