[pytorch 따라하기-1] 구글 Colab에 pytorch 세팅하기 https://limitsinx.tistory.com/136
※이 전글에서 정리한 코드/문법은 재설명하지 않으므로, 참고부탁드립니다
※해당 글은 PC에서 보기에 최적화 되어있습니다.
이번글에서는 pytorch를 활용하여 변수(tensor)를 생성하고 Gradient Descent(경사하강법)을 다루기 전초단계인
기울기값 알아내는 방법을 정리해보겠습니다.
해당 코드는 x값이 2,3 이고, y = x.^2 ,z = x^2 + 3 일때 각각의 기울기값을 나타내는 것입니다.
import torch
x = torch.tensor(data = [2.0,3.0], requires_grad = True)
y = x**2
z = 2*y + 3
target = torch.tensor([3.0,4.0])
loss = torch.sum(torch.abs(z-target))
loss_2 = torch.abs(z-target)
loss.backward()
print('loss : ',loss)
print('loss_2 : ', loss_2)
print(x.grad, y .grad, z.grad)
결과값
x=[2,3]을 수식에 대입하면
y=[4,9]
z=[11,21] 이 되는데요, loss = z-target이기에 print out을 하게되면
[8,17]이 나오며, loss.sum = 8+17=25가 됩니다.
loss.backward() 함수를 통해 기울기(gradient)값을 연산하도록 하면,
(Z-target)에 대한 미분값 = Z' = 4x로 [8,12]를 print하게 됩니다.
여기서 중요한점이 loss.backward()부분입니다.
loss함수가 Z에 대한 함수였기에 [8,12]로 나타내지만, Y에 대한 함수였다면 y'=2x =[4,6]을 print하게 됩니다.
'DeepLearning Framework & Coding > Pytorch' 카테고리의 다른 글
[pytorch 따라하기-6] Neural Style Transfer 구현(이미지 합성) (2) | 2021.07.26 |
---|---|
[pytorch 따라하기-5] 합성곱신경망(CNN) 구현 (0) | 2021.07.25 |
[pytorch 따라하기-4] 인공신경망(ANN) 구현 (0) | 2021.07.25 |
[pytorch 따라하기-3] 경사하강법을 통한 선형회귀 구현 (0) | 2021.07.25 |
[pytorch 따라하기-1] 구글 Colab에 pytorch 세팅하기 (0) | 2021.07.25 |
댓글