본문 바로가기

Linux/colab

[COLAB] google colab 이란? & 사용법

google colab  &  jupyter notebook

구글 코랩(colab)클라우드 기반의 무료 Jupyter notebook 개발 환경

google drive에 저장된 jupyter notebook

내부적으로 코랩 + 구글드라이브 + 도커 + 리눅스 + 구글클라우드의 기술스택으로 이루어진 것으로 알려짐

 

jupyter notebookpython을 실행할 수 있는 IDE(통합개발환경)의 일종

pycharm, vscode에 비해 웹브라우저에서 동작할 정도로 가벼움

데이터과학, 머신러닝 프로젝트에 많이 사용되는 개발환경

anaconda(여러 데이터분석 패키지를 포함한 파이썬 배포판) 설치시 jupyter notebook, lab 함께 설치됨

cmd,bash 등 에서 jupyter notebook 커널 실행 후 http://localhost:8000/tree, http://localhost:8000/lab 으로 접속

jupyter labnotebook보다 확장된 기능 사용가능

interactive Python(Ipython) : 셀 단위로 실행가능

 

colab의 장점

colab은 구글 계정만 있다면 googldrive에서 colab notebook을 생성하고 바로 python 코딩 가능

pcanaconda 설치하여 jupyter notebook 커널을 실행하고 접속하는 번거로운 과정 필요 x

고성능 gpu 무료 사용

구글 클라우드 서버를 이용하므로 개인 컴퓨팅 자원 필요 x

간편한 공유

 

googledrive에서 colab이용방법

1. 구글드라이브 --> 새로만들기--> 연결할 앱 더보기
2. colaboratory 추가
3. 새로 만들기 --> google colaboratory
4. 웹 브라우저에서 colab 실행완료

 

코드 작성 실습

print(“hello world”)

seconds_in_a_day = 24 * 60 * 60
seconds_in_a_day

seconds_in_a_week = 7 * seconds_in_a_day
seconds_in_a_week

 

colab가상머신 스펙 확인

#운영체제 확인
!cat /etc/issue

#0. CPU 정보 확인
!cat /proc/cpuinfo

#1. CPU 코어 전체 개수 확인
!grep -c processor /proc/cpuinfo
 
#2. 물리 CPU 수 확인
!grep "physical id" /proc/cpuinfo | sort -u | wc -l
 
# 3.CPU당 물리 코어 수 확인
!grep "cpu cores" /proc/cpuinfo | tail -1

#메모리 확인
!free -h

#런타임 유형 변경 후 gpu 확인
!nvidia-smi

 

colab가상머신으로 분석할 데이터 가져오기

1. vm에 직접 업로드

2. google drive mount

3. gsutil google cloud storage에서 복사.

 

1. vm에 직접 업로드

 

2. 구글 드라이브 마운트

1. 드라이브 마운트 버튼 클릭
2. 구글드라이브에 저장된 파일 경로 복사

3. gsutil google cloud storage에서 복사.

1. gcp계정 생성후 Cloud Storage -> 브라우저
2. 버킷 만들기 클릭
3. 버킷 이름 지정후 만들기

 

4. 버킷 접근 권한 추가하기
5.저장소 구성원 추가

주의 : 위와 같이 allUsers를 저장소 개체 관리자로 설정하면 설정하면 누구나 저장소에 접근 및 수정이 가능하므로

기밀성이 요구되는 데이터를 위한 저장소로는 적합하지 않음

6. 버킷에 파일 업로드
7. colab에서 gsutil명령어 이용하여 버킷으로부터 파일 복사

실습코드

import pandas as pd
df = pd.read_csv("/content/drive/MyDrive/37assays_data.csv")
TOX21_PPARg_BLA_Agonist_ratio = []
for i in df['TOX21_PPARg_BLA_Agonist_ratio'].dropna() : 
  if i == 'N' : 
    TOX21_PPARg_BLA_Agonist_ratio.append(0)
  else : 
    TOX21_PPARg_BLA_Agonist_ratio.append(1)
import seaborn as sns
sns.countplot(TOX21_PPARg_BLA_Agonist_ratio)

 

코드 공유하기

1. colab 노트나 googledrive에서 공유 버튼 클릭
2. 이메일로 사용자 추가하거나 링크복사하여 공유가능

 

GPU런타임 연결

1. 런타임 유형 변경 클릭
2. 하드웨어 가속기 GPU로 설정
3. 연결된 GPU확인. !nvidia-smi

TPU사용법

1. 하드웨어 가속기 TPU로 설정

import tensorflow as tf

# detect and init the TPU
tpu = tf.distribute.cluster_resolver.TPUClusterResolver.connect()

# instantiate a distribution strategy
tpu_strategy = tf.distribute.experimental.TPUStrategy(tpu)

# instantiating the model in the strategy scope creates the model on the TPU
with tpu_strategy.scope():
    model = tf.keras.Sequential( … ) # define your model normally
    model.compile( … )
    
# train model normally
model.fit(training_dataset, epochs=EPOCHS, steps_per_epoch=…)

https://www.kaggle.com/docs/tpu

 

Tensor Processing Units (TPUs) Documentation

 

www.kaggle.com

Colab Pro

https://colab.research.google.com/signup

 

Colab Pro

 

colab.research.google.com