Related to: Machine Learning

개요

역전파(Backpropagation)를 위한 자동 미분 기능인 Autograd를 설명합니다. PyTorch는 Autograd 기능이 엔진에 내장되어 있습니다.

핵심 개념

자동 미분(Autograd)

  • 역전파를 위한 자동 미분 기능
  • Pytorch는 Autograd 기능이 엔진에 내장되어 있습니다.
  • loss.backward() 호출 시 연산 그래프를 역방향으로 탐색하며 각 파라미터의 gradient를 자동 계산

예시 / 코드

import torch
from torchvision.models import resnet18, ResNet18_Weights
 
model = resnet18(weights=ResNet18_Weights.DEFAULT)
optim = torch.optim.SGD(model.parameters(), lr=1e-2, momentum=0.9)
data = torch.rand(1, 3, 64, 64)
labels = torch.rand(1, 1000)
 
# Forward Pass
prediction = model(data)
 
# Calc loss
loss = (prediction - labels).sum()
 
# Backward Pass
# Autograd를 사용하여 자동으로 미분 수행, 결과 값은 각 param의 .grad에 저장
loss.backward()
 
# Gradient descent
# model.parameters()로 얻은 각 param의 .grad를 사용하여 해당 param을 업데이트
optim.step()

관련 개념

참조

https://wikidocs.net/60754

https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html

Week 2