포스트

PyTorch 기초 (0) - 시리즈 소개

이 시리즈가 누구를 위한 글인지, NumPy·Pandas 기초 및 딥러닝 기초 시리즈와 어떻게 이어지는지, 그리고 텐서부터 autograd·nn.Module·데이터·학습 실무까지 여섯 편의 진행 순서를 정리한 0편입니다.

PyTorch 기초 (0) - 시리즈 소개

딥러닝 프레임워크 PyTorch를 기초부터 정리하는 시리즈의 0편입니다. 시리즈 소개와 진행 순서를 다루며, 본문은 1편부터 시작합니다.

누구를 위한 시리즈인가

이 시리즈는 다음에 해당하는 분들을 대상으로 작성한 글입니다.

  • 딥러닝의 개념(순전파, 역전파, 경사하강)은 잡았지만 그것을 코드로 옮기는 도구가 없는 사람
  • PyTorch 예제를 복사해 돌려는 봤지만 tensor, autograd, nn.Module이 각각 무슨 역할인지 흐릿한 사람
  • NumPy는 익숙한데 “그럼 PyTorch는 NumPy와 뭐가 다른가”가 궁금한 사람

딥러닝의 원리 자체가 처음이라면 딥러닝 기초 시리즈를 먼저 보는 것을 권합니다. 이 시리즈는 그 원리를 도구로 옮기는 단계입니다.

이 시리즈의 위치

PyTorch는 도구입니다. 이 블로그에서 NumPy·Pandas가 데이터를 다루는 도구였다면, PyTorch는 딥러닝 모델을 다루는 도구이고, 그래서 같은 “라이브러리” 자리에 놓입니다.

  • 데이터 라이브러리NumPy·Pandas 기초. 배열과 표를 다루는 도구.
  • 딥러닝 프레임워크 — 이 시리즈. 텐서와 자동 미분으로 신경망을 만드는 도구.
  • 개념(왜)딥러닝 기초. 신경망이 무엇을, 어떻게 배우는가.
  • 적용 — 개념 + 도구를 실제 데이터에 붙이는 실습·프로젝트.

즉 딥러닝 기초가 신경망의 원리를 NumPy로 드러냈다면, 이 시리즈는 같은 원리를 PyTorch로 옮깁니다. 특히 (2) autograd 편은 딥러닝 기초 (4)에서 손으로 짰던 역전파를, 프레임워크가 대신 계산해주는 loss.backward() 한 줄로 대체하는 지점입니다.

어떻게 진행하는가

여섯 편(0–5)으로 진행하며, 순서는 아래와 같습니다.

주제
(1)텐서: NumPy 배열에서 넘어오기, 그리고 GPU
(2)autograd: 자동 미분과 계산 그래프
(3)모델 조립: nn.Module, 손실, 옵티마이저, 학습 루프
(4)데이터 파이프라인: Dataset과 DataLoader
(5)학습 실무: GPU, train/eval 모드, 체크포인트, 재현성

각 편은 개념을 먼저 세우고 최소한의 코드로 확인하는 방식으로 진행합니다. 각 편이 공개되면 위 표에 링크를 답니다.

실습 환경

실습은 Google Colab으로 통일합니다. 별도 설치 없이 브라우저에서 실행할 수 있고, torch가 이미 설치되어 있으며 무료 GPU도 붙일 수 있습니다(런타임 → 런타임 유형 변경 → GPU). 아래 코드가 에러 없이 돌고 버전이 출력되면 준비가 끝난 것입니다.

1
2
3
4
import torch

torch.__version__          # '2.x.x'
torch.cuda.is_available()  # GPU 런타임이면 True

환경 준비가 처음이라면 NumPy·Pandas 기초 0편의 실습 환경 절을 참고하세요. 준비가 됐으면 1편부터 시작합니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.