Python 연습장
구글 코랩(colab)을 알아보자 본문
python으로 코딩을 해 본 사람이라면 모두가 사용해봤을 colab.
하지만 배포된 강의자료 열어볼 때만 써봤지 제대로 알아보고 사용한 적이 없어서 환경과 사용방법에 대해 정리해두려고 한다.
[ colab 을 사용하는 이유 ]
- GPU 가 제공된다.
- ipynb 파일로 markdown 을 같이 쓸 수 있어서 강의자료로 적합하다.
- cloud(google drive) 기반이라 장소에 구애없이 사용가능하다.
- cloud 기반이라 공유하기 편하다.
[ colab 의 단점 ]
- 기본 package 가 아니면 매번 package 를 새로 install 해줘야 한다.
- 코드가 길어질 경우, output 이 많을 경우 로딩이 있고 느리다.
- jupyter notebook 과 마찬가지로 코드 오류 확인이 어렵다.
- 서버에서 작동하는거라 local host 접속이 불가하다. (dash 같은 java 기반 패키지 이용에 제한이 있다.)
사실 충분히 잘 구동되는 일반 PC환경에서는 제약도 적고 빠른 vscode, pycharm, spyder 같은 ide 를 사용하는 게 가장 좋다.
GPU가 없는 환경에서 GPU 사용이 필요하거나, 장소를 옮겨가며 여러 컴퓨터에서 코딩 작업을 하는 경우에 colab을 추천한다.
이렇게 쓰고보니 추천하지 않는다는 말 같지만 GPU 제공 하나만으로도 엄청난 장점이다.
또 GPU가 있어도 환경맞추기가 까다로운데 (초기에는 맞춰놓겠지. 하지만 업그레이드는 안한다. 나만 그런가?ㅎ)
텐서플로우와 파이토치 최신버전에서 GPU 구동이 가능하도록 알아서 세팅을 해준다는 건 정말정말 큰 장점이다.
[ colab default 설정값 ]
파이썬 버전은 3.7에 맞춰져 있다.
!python --version
# Python 3.7.13
기본으로 설치되어있는 package 들은 너무 많은데 이 중에서 주요한 패키지만 살펴보겠다.
먼저 matplotlib 은 현 최신버전이 3.5 인데 3.2가 들어있고 xgboost 는 지금 최신버전이 1.6 인데 0.9 버전이 들어있다.
물론 업그레이드 가능하지만 귀찮으니까.. 아마 호환 때문에 일부러 낮은 버전으로 해둔거겠지?
tensorflow 최신버전 2.8(현재 최신버전은 2.9지만...)이 가능하다는 게 신기하다.
컴퓨터 여러대로 환경 맞춰봤을 때 2.5까지가 사용할 수 있는 가장 높은 버전이었는데...!
Package Version
----------------------------- ----------------------------
bs4 0.0.1
Cython 0.29.32
gensim 3.6.0
imbalanced-learn 0.8.1
keras 2.8.0
lightgbm 2.2.3
matplotlib 3.2.2
numba 0.56.0
numpy 1.21.6
pandas 1.3.5
plotly 5.5.0
scikit-learn 1.0.2
scipy 1.7.3
seaborn 0.11.2
tensorflow 2.8.2+zzzcolab20220719082949
torch 1.12.1+cu113
xgboost 0.90
package 업그레이드 하는 방법은 터미널에서 하는 그대로 --upgrade 시켜주면 된다.
!pip install --upgrade xgboost #최신
!pip install --upgrade xgboost==1.6.1 #버전지정
[ colab 에서 파이썬 버전 변경하는 방법 ]
!wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
!tar xvfz Python-3.8.12.tgz
!Python-3.8.12/configure
!make
!sudo make install
시간이 꽤 소요된다. 5분 정도 뒤에 확인하면 된다.
!python --version
[ 코랩에서 GPU 사용하기 ]
GPU 가 제공되기는 하지만 비싸고 한정된 자원이니 구글도 막 퍼주진 않는다.
default 설정은 GPU 는 미사용이고 GPU 를 사용하기 위해서 런타임 > 런타임 유형변경 > 하드웨어 가속기 > GPU 로 변경해준다.
GPU를 한 개 세션에서만 사용할 수 있어서 노트북 두 개 열어놓고 둘 다 GPU 사용하는 건 안된다. (무료 버전 기준)

그리고 GPU 가 제대로 할당되었는지 확인하기 위해 아래와 같이 입력한다.
!nvidia-smi
입력하면 아래와 같이 할당된 GPU 가 나온다.
Tesla T4가 배정되었다. GPU는 랜덤으로 배정된다는데 난 왜 돌릴 때마다 Tesla T4 인지 모르겠네.
Tesla T4 앞에는 GPU number 다. GPU 가 여러개인 경우 0,1,2 이렇게 뜨고 어떤거 사용할지 지정할 수 있다.
(근데 여러개였던 적이 없어서 안해봄.)

[ colab 유료서비스 ]
일반 무료버전과 pro, pro+ 의 두 가지 유료버전으로 나뉜다.
- pro는 9.99달러/월 (현재 환율로는 만사천원ㅠㅠ)
- pro+는 49.99달러/월 (7만원 가까이...).
구글 설명에는 무료서비스보다 얼마만큼 좋아진다, 몇배만큼 향상된다 라는 말없이 결제만 하라고 해서 정확하게는 모르겠지만
pro 에 더 좋은 사양의 GPU에 할당되고 좀 더 오래 사용할 수 있으며 런타임유형에서 RAM도 2배로 늘리는 옵션 선택이 가능하다.
pro+는 백그라운드에서도 돌아간다는 특장점이 있다.
강사들은 많이 쓰는 것 같은데 pro+ 쓰시는 분은 못본 듯.
나는 무료만 해도 충분한 것 같다!
[ 단축키 ]
일반 jupyter notebook 하고 단축키가 달라서 안 먹길래 그냥 마우스로 요리조리 움직였다가 불편해서 정리해둔다.
맥에서는 ctrl 대신 cmd 다.
- 윗줄에 셀삽입 : ctrl + m + a
- 아랫줄에 셀삽입 : ctrl + m + b
(사실 여기까지는 그냥 esc + a, b 하면 jupyter notebook 과 동일하게 작동된다)
- 삭제 : ctrl + m + d
(삭제는 dd 를 아무리 눌러봐도 안됐다. ctrl + m 이 꼭 필요하다)
- 코드셀로 변경 : ctrl + m + y
- 마크다운셀로 변경 : ctrl + m + m
- 실행취소 : ctrl + m + z
- 실행 : ctrl + enter / shift + enter
[ 변수 확인하기 ]
왼쪽 탭에 변수{x}를 클릭하면 어떤 변수가 있는지 속성이 뭔지 값은 뭐가 있는지 보여준다.
(spyder의 variable explorer 는 다른 ide 를 찾아볼수록 사기다.)

[ 함수에서 Docstring 보는 방법 ]
도구 > 설정 > 코드 완성 제안을 자동으로 표시를 해제 후 함수에서 shift + tab
함수에서 하이퍼파라미터 옵션들이 뭐가 있는지 디폴트 값은 어떻게 설정되어있는지 확인할 때 docstring을 보는데
colab 에서는 먼저 설정에가서 저 옵션을 체크해제해줘야 shift + tab 으로 작동된다.
해제없이도 가끔 그냥 되기도 하던데 그건 뭘 눌렀을 때 작동되는지는 정확히 모르겠다.
속 편하게 설정 변경하고 shift + tab 사용!


설정 기웃거리다가 발견한 옵션인데 코랩에서 웰시코기가 걸어다니게 할 수 있다. 귀엽군.
도구 > 설정 > 기타 > 코기 모드


'코딩' 카테고리의 다른 글
| colab 에서 google drive mount 하기 (0) | 2023.01.02 |
|---|---|
| torch 설치 (0) | 2022.12.29 |
| Python 가상환경 만들기 (0) | 2022.08.09 |
| Global memery usage 확인 방법 in Python (0) | 2022.08.09 |
| CPU 코어 수 확인 파이썬 코드 (0) | 2022.08.09 |