Related to: Machine Learning
자동 미분(Autograd)
- 역전파를 위한 자동 미분기능
Pytorch
- Pytorch는 Autograd 기능이 엔진에 내장되어 있습니다.
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://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html