다음 글은 파이토치 코리아의 기본 익히기 글을 참고하여 작성하였습니다.
Autograd
신경망을 학습할 때 가장 자주 사용되는 알고리즘은 역전파(backpropagtaion)입니다.
역전파에서 매개변수(모델 가중치)는 주어진 매개변수에 대한 손실함수의 변화도(gradient)에 따라 조정됩니다.)
이 변화도를 측정하기 위해선 미분과정이 필요하며 PyTorch에서는 torch.autograd 를 사용하여 자동 계산을 지원합니다.
다음 그래프에서 최적화 해야하는 매개변수는 w와 b 입니다.
import torch
x = torch.ones(5) # input tensor
y = torch.zeros(3) # expected output
w = torch.randn(5, 3, requires_grad=True)
b = torch.randn(3, requires_grad=True)
z = torch.matmul(x, w)+b
loss = torch.nn.functional.binary_cross_entropy_with_logits(z, y)
해당 텐서에 required_grad = True 속성을 사용하여 자동 미분이 가능하도록 설정합니다.
그리고 다음 loss.backward()를 사용하여 각 매개변수의 도함수를 계산합니다.
loss.backward()
torch.no_grad() 를 사용하여 자동 미분 과정을 실행하지 않도록 설정할 수 있습니다.
'ML & DL > PyTorch' 카테고리의 다른 글
[PyTorch] torch.nn (0) | 2023.03.15 |
---|---|
[PyTorch] Optimization, 최적화 (0) | 2023.03.13 |
[PyTorch] DATASET과 DATALOADER (0) | 2023.03.13 |
[PyTorch] 텐서(Tensor) (0) | 2023.03.13 |
PyTorch 란 ? (0) | 2023.03.13 |