Skip to main content
Summary

PyTorch는 딥러닝 작업을 연결해 주는 도구입니다

PyTorch는 인공지능 모델을 만들고 학습시키는 데 사용하는 파이썬 라이브러리입니다. 처음에는 어렵게 느껴질 수 있지만, 큰 역할은 단순합니다. 데이터를 숫자로 바꾸고, 모델에 넣고, 결과를 확인하며, 더 나은 답을 내도록 모델을 수정하는 과정을 도와줍니다.

PyTorch의 중심에는 Tensor가 있습니다. 텐서는 숫자를 담는 다차원 배열입니다. 1차원 숫자 목록, 2차원 표, 3차원 이미지 데이터처럼 여러 모양의 데이터를 표현할 수 있습니다. 이 점에서 PyTorch는 NumPy와 비슷합니다. NumPy도 숫자 배열을 빠르게 계산하는 도구입니다.

하지만 PyTorch는 딥러닝에 필요한 기능을 더 갖추고 있습니다. 첫째, GPU를 사용해 큰 계산을 빠르게 처리할 수 있습니다. 둘째, 자동 미분을 지원합니다. 자동 미분은 모델이 틀린 정도를 보고, 어떤 값들을 얼마나 수정해야 하는지 계산해 주는 기능입니다. 딥러닝 학습은 이 계산을 반복하는 과정이므로, 자동 미분은 PyTorch의 핵심 기능입니다.

PyTorch로 무엇을 할 수 있는지 이해하기

딥러닝 프로젝트의 기본 흐름

대부분의 PyTorch 프로젝트는 비슷한 순서로 진행됩니다.

먼저 데이터를 준비합니다. 예를 들어 이미지 분류라면 이미지 파일과 정답 라벨이 필요합니다. 그다음 데이터를 모델에 넣기 좋은 형태로 바꿉니다. 이미지는 숫자 텐서로 변환되고, 크기나 값의 범위도 조정될 수 있습니다.

다음으로 모델을 정의합니다. 모델은 입력을 받아 예측을 만드는 함수라고 생각하면 됩니다. 예를 들어 옷 사진을 넣으면 "티셔츠", "운동화", "가방" 같은 결과를 예측합니다.

모델이 예측을 만들면 손실을 계산합니다. 손실은 모델의 예측이 정답과 얼마나 다른지를 나타내는 값입니다. 손실이 크면 많이 틀린 것이고, 손실이 작으면 정답에 가까운 것입니다.

그다음 최적화를 수행합니다. 최적화는 손실을 줄이도록 모델 내부의 숫자, 즉 파라미터를 조금씩 바꾸는 과정입니다. 이 과정이 반복되면서 모델은 점점 더 나은 예측을 하게 됩니다.

학습이 끝나면 평가를 합니다. 학습에 사용하지 않은 데이터로 모델이 잘 맞히는지 확인합니다. 마지막으로 모델을 저장합니다. 저장해 두면 나중에 다시 불러와 예측에 사용할 수 있습니다.

정리하면 흐름은 다음과 같습니다.

  • 데이터 준비

  • 모델 정의

  • 예측 수행

  • 손실 계산

  • 최적화

  • 평가

  • 저장과 불러오기

이 책의 뒤쪽 장들은 이 흐름을 하나씩 나누어 배우는 방식으로 진행됩니다.

자주 만나는 PyTorch 구성요소

초보자는 비슷한 이름의 도구를 많이 만나게 됩니다. 지금은 자세히 외울 필요는 없습니다. 각 도구가 맡는 역할만 가볍게 알아두면 충분합니다.

torch는 PyTorch의 기본 기능을 담고 있는 핵심 패키지입니다. 텐서를 만들고 계산하며, GPU로 옮기는 기능도 여기서 자주 사용합니다.

torchvision은 이미지 작업을 도와주는 패키지입니다. 예제 데이터셋, 이미지 변환 도구, 미리 학습된 모델 등을 제공합니다.

torch.nn은 신경망을 만들 때 사용하는 도구입니다. 선형 계층, 합성곱 계층, 활성화 함수처럼 모델을 구성하는 부품이 들어 있습니다.

torch.optim은 모델을 학습시키는 최적화 알고리즘을 제공합니다. 대표적으로 SGD, Adam 같은 옵티마이저를 사용할 수 있습니다.

DataLoader는 데이터를 조금씩 나누어 모델에 공급하는 도구입니다. 전체 데이터를 한 번에 넣지 않고, 배치라는 작은 묶음 단위로 꺼내 줍니다. 학습 데이터를 섞거나 병렬로 불러오는 일도 도와줍니다.

FashionMNIST로 전체 흐름을 익힙니다

이 책에서는 이미지 분류 예제로 FashionMNIST를 사용합니다. FashionMNIST는 옷과 신발 같은 흑백 이미지로 구성된 데이터셋입니다. 각 이미지는 티셔츠, 바지, 코트, 샌들, 운동화, 가방 같은 정답 라벨을 가집니다.

문제는 단순합니다. 이미지를 입력하면 어떤 종류의 물건인지 맞히는 모델을 만드는 것입니다. 이 문제를 통해 PyTorch의 기본 흐름을 자연스럽게 익힐 수 있습니다.

이미지는 텐서로 바뀝니다. DataLoader는 이미지를 배치 단위로 꺼냅니다. nn.Module로 만든 모델은 이미지를 보고 예측값을 출력합니다. 손실 함수는 예측과 정답의 차이를 계산합니다. 옵티마이저는 모델의 파라미터를 수정합니다. 학습이 끝나면 평가 데이터로 정확도를 확인하고, 모델을 파일로 저장합니다.

처음부터 모든 코드를 완벽히 이해할 필요는 없습니다. 중요한 것은 PyTorch가 여러 조각을 따로따로 제공하지만, 실제 프로젝트에서는 이 조각들이 하나의 흐름으로 연결된다는 점입니다. 앞으로의 장에서는 이 흐름을 텐서부터 학습 루프까지 차근차근 직접 만들어 보겠습니다.

책 목록

초보자를 위한 PyTorch 사용법: 텐서부터 이미지 분류 프로젝트까지

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기