본문 바로가기
카테고리 없음

Google Colab : 소개, 장점, 설치법, 예제 코드

by 쨔우쨔우 2025. 3. 27.
반응형

google colaboratory logo

Google Colaboratory, 줄여서 Google Colab(코랩)은 구글이 제공하는 클라우드 기반의 파이썬 개발 환경입니다.

특히 딥러닝·머신러닝·데이터 분석에 특화되어 있으며, 별도의 설치 없이 웹 브라우저만 있으면 바로 코드를 작성하고 실행할 수 있는 Jupyter Notebook 환경입니다.


왜 사용하는가?

  • 개인 PC의 성능 한계를 극복할 수 있음 (무료 GPU 지원)
  • 소프트웨어 설치 없이 바로 개발 가능 (딥러닝 프레임워크 사전 설치됨)
  • 코드 공유 및 협업이 쉬움 (Google Drive와 통합)
  • 학습 및 연구, 프로토타입 제작에 최적화

장점은 무엇인가?

항목 장점
접근성 웹 브라우저에서 바로 사용 가능
하드웨어 자원 무료로 GPU, TPU 제공(Tesla T4, P100 등)
저장소 연동 Google Drive와 연동해 파일 저장 및 불러오기 가능
딥러닝 지원 TensorFlow, PyTorch, OpenCV 등 미리 설치되어 있음
협업 기능 다른 사람과 실시간으로 노트북 공유, 공동 편집 가능
버전 관리 Github와 연동해 프로젝트 버전 관리 가능

그래서 어디에 쓰이는가?

  • 딥러닝 모델 개발 및 학습 (TensorFlow, PyTorch)
  • 머신러닝 실습 및 튜토리얼 공유
  • 데이터 분석 및 시각화 (Pandas, Matplotlib, Seaborn 등)
  • Kaggle, AI 경진대회 제출용 코드 테스트
  • 연구용 논문 코드 재현
  • 코드 리뷰 및 강의 자료 제작

사용법 (한 번에 끝내는 핵심 가이드)

1. 설치

구글 드라이브에 들어갑니다.

 

[신규] 버튼을 클릭 → 더보기 → Colaboratory 검색하여 설치

구글 드라이브 화면Colaboratory 설치

 

2. 새 노트북 만들기

.ipynb 파일 생성

Google Colaboratory 파일 만들기

3. 런타임 유형 설정(GPU / TPU 선택)

  • 메뉴에서 런타임 > 런타임 유형 변경
  • 하드웨어 가속기: GPU 또는 TPU 선택 (기본은 None)

런타임 유형 설정 방법런타임 유형 설정 방법

4. Google Drive 연동(파일 저장 및 불러오기)

from google.colab import drive
drive.mount('/content/drive')

 

→ 처음 한 번은 인증 코드 입력 필요
→ 이후 /content/drive/MyDrive/ 경로를 통해 파일 접근 가능

5. 패키지 설치 및 사용 예시

# pip 명령어 사용 가능
!pip install numpy pandas matplotlib

6. PyTorch / TensorFlow 예시 코드

import torch
print(torch.__version__)
print(torch.cuda.is_available())  # GPU 사용 가능 여부
import tensorflow as tf
print(tf.__version__)
print(tf.config.list_physical_devices('GPU'))  # GPU 확인

 

📝 추가 팁

  • 자동 저장: 모든 작업은 Google Drive에 자동 저장됨
  • 유휴 시간 종료 주의: 일정 시간(약 90분) 이상 작업이 없으면 세션이 종료될 수 있음
  • 세션 시간 제한: 일반 사용자는 12시간, Pro 사용자는 최대 24시간 가능

7. Colab에서 바로 실행 가능한 딥러닝 예제 코드

주제 : MNIST 숫자 이미지 분류(PyTorch 사용)

# 1. 라이브러리 임포트
import torch
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
import torchvision
import torchvision.transforms as transforms

# 2. 디바이스 설정
# Google Colab에서 GPU 사용 여부 확인(GPU 사용 가능하면 자동으로 CUDA로 설정, 아니면 CPU 사용)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

# 3. 데이터 전처리 및 로더 설정
# 이미지를 Tensor로 변환하고 픽셀값을 정규화
transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.5,), (0.5,))
])

# MNIST 데이터셋을 로드하고 DataLoader로 묶어서 배치 처리 가능하도록 함
trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)

trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)
testloader = torch.utils.data.DataLoader(testset, batch_size=64, shuffle=False)

# 4. 모델 정의
# 두 개의 합성곱 층(conv1, conv2) --> 풀링 --> 완전연결층 --> 10개 클래스 출력
class CNN(nn.Module):
    def __init__(self):
        super(CNN, self).__init__()
        self.conv1 = nn.Conv2d(1, 16, 3, padding=1)
        self.conv2 = nn.Conv2d(16, 32, 3, padding=1)
        self.pool = nn.MaxPool2d(2, 2)
        self.fc1 = nn.Linear(32 * 7 * 7, 128)
        self.fc2 = nn.Linear(128, 10)

    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(-1, 32 * 7 * 7)
        x = F.relu(self.fc1(x))
        return self.fc2(x)

model = CNN().to(device)

# 5. 손실 함수 및 최적화 함수
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

# 6. 학습 루프
for epoch in range(3):  # 3 에폭 학습(3회 반복)
    running_loss = 0.0
    for images, labels in trainloader:
        images, labels = images.to(device), labels.to(device)

        optimizer.zero_grad()
        outputs = model(images)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()

        running_loss += loss.item()

    print(f"[Epoch {epoch+1}] Loss: {running_loss:.4f}")

# 7. 테스트 정확도 측정
correct = 0
total = 0
model.eval()
with torch.no_grad():
    for images, labels in testloader:
        images, labels = images.to(device), labels.to(device)
        outputs = model(images)
        _, predicted = torch.max(outputs.data, 1)
        total += labels.size(0)
        correct += (predicted == labels).sum().item()

print(f"테스트 데이터 정확도: {100 * correct / total:.2f}%")

 

딥러닝 프로젝트나 실험 계획이 있다면 Colab은 최고의 시작 플랫폼입니다.

반응형