정지용
기술스택 목록
프레임워크

PyTorch

프로젝트 1에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

동적 계산 그래프와 자동 미분으로 딥러닝 모델을 구현·학습시키는 파이썬 프레임워크

PyTorch는 텐서 연산과 자동 미분(autograd)을 기반으로 신경망을 정의하고 학습시키는 오픈소스 딥러닝 프레임워크다. 모델 구조를 파이썬 코드처럼 즉시 실행하며 만들 수 있게 하여, 연구자가 반복적으로 구조를 수정하고 결과를 바로 확인하기 쉽도록 설계됐다. GPU를 이용한 대규모 텐서 연산을 표준 API로 제공해 학습과 추론 속도를 크게 끌어올린다. 연구용 프로토타이핑 도구로 시작했지만 이후 모델을 실제 서비스에 배포하는 용도까지 함께 지원하는 방향으로 확장됐다.

이럴 때 사용합니다

  • 이미지 생성, 분류 등 딥러닝 모델을 직접 학습시키거나 추론 백엔드로 구동할 때
  • GPU 가속을 활용해 대규모 텐서 연산 성능이 필요한 경우
  • 모델 구조를 유연하게 실험하고 디버깅하기 쉬운 개발 방식이 필요할 때
  • 다양한 오픈소스 딥러닝 모델과 사전학습 가중치를 그대로 활용하고 싶을 때

핵심 개념

Tensor
다차원 배열을 표현하는 기본 데이터 구조로, CPU와 GPU 양쪽에서 동일한 방식으로 다룰 수 있다.
Autograd
텐서 연산 과정을 추적해 손실 함수에 대한 그래디언트를 자동으로 계산해주는 기능으로, 역전파 구현을 대신해준다.
Dynamic Computation Graph
모델을 실행할 때마다 계산 그래프가 새로 만들어지는 방식으로, 조건문이나 반복문이 포함된 유연한 모델 구조 작성을 가능하게 한다.
nn.Module
레이어와 파라미터를 묶어 신경망 구성 요소를 정의하는 기본 클래스로, 이를 조합해 전체 모델을 구성한다.
Device (CPU/GPU)
텐서와 모델이 연산될 장치를 지정하는 개념으로, 동일한 코드를 CPU와 GPU 사이에서 손쉽게 옮겨 실행할 수 있다.

간단한 텐서 연산과 GPU 사용 확인

텐서를 GPU로 옮기고, autograd를 이용해 간단한 연산의 그래디언트를 자동으로 계산하는 예시다.

Python
import torch

# 텐서 생성
x = torch.tensor([1.0, 2.0, 3.0])

# GPU 사용 가능 여부 확인 후 장치 지정
device = "cuda" if torch.cuda.is_available() else "cpu"
x = x.to(device)

# 그래디언트 추적이 필요한 텐서
w = torch.tensor([2.0], requires_grad=True)
y = (x.sum() * w) ** 2

# 역전파로 그래디언트 계산
y.backward()
print(w.grad)

처음 쓸 때 흔한 함정

  • GPU가 있어도 텐서와 모델을 명시적으로 device로 옮기지 않으면 CPU에서만 연산된다.
  • CUDA 버전과 PyTorch 빌드 버전이 맞지 않으면 GPU 가속이 동작하지 않을 수 있다.
  • requires_grad와 grad 초기화를 잊으면 그래디언트가 누적되거나 계산되지 않는 문제가 생긴다.

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.