rueki

4. Gradient Descent 본문

pytorch

4. Gradient Descent

륵기 2020. 3. 5. 17:48
728x90
반응형
import torch

x = torch.tensor(2.0, requires_grad=True)
#requires_grad -> 텐서 연산 추적

y = 2*x**4 + x**3 + 3*x**2 + 5*x + 1
print(y)
# tensor(63., grad_fn=<AddBackward0>)
# y의 방정식에 2.0이 들어가서 연산된 값 출력



y.backward() #y에 대한 역전파 수행
x.grad #기울기 출력



x = torch.tensor([[1.,2.,3.],[3.,2.,1.]],requires_grad=True)
y = 3*x + 2

print(y)
'''
tensor([[ 5.,  8., 11.],
        [11.,  8.,  5.]], grad_fn=<AddBackward0>)
'''

z = 2*y**2
'''
tensor([[ 50., 128., 242.],
        [242., 128.,  50.]], grad_fn=<MulBackward0>)
'''

out = z.mean() #행렬 원소 평균값
# tensor(140., grad_fn=<MeanBackward0>)

out.backward()
print(x.grad)
'''
tensor([[10., 16., 22.],
        [22., 16., 10.]])
'''


Pytorch에는 AutoGrad 기능이 있어 기울기 계산에 용이하다.

텐서에 requires_grad를  True로 설정하면, 텐서 연산을 추적할 수가 있다.

backward()는 역전파를 수행하며, grad를 통해 기울기를 확인할 수가 있다.

728x90
반응형

'pytorch' 카테고리의 다른 글

6. Pytorch를 이용한 ANN 구현  (0) 2020.03.07
5. pytorch를 이용한 Linear Regression  (0) 2020.03.07
3. 파이토치 기본 연산  (0) 2020.03.05
2. 텐서 기초2  (0) 2020.03.04
1. 텐서 기초  (0) 2020.03.04
Comments