PyTorch의 require_grad는 어떻게 작동합니까?

torch.autograd는 신경망 훈련을 지원하는 PyTorch의 자동 차별화 엔진입니다. 예를 들어 이해해 봅시다.

다음은 PyTorch가 거꾸로 계산하는 샘플입니다.




x = torch.rand(1, requires_grad=True)
y = torch.rand(1)
v = x * y
w = torch.log(v)
xGrad = w.backward() # dw/dx


우리의 출력을 가정하고 이 숫자로 넘어갑시다.




x = tensor([0.0559], requires_grad=True)
y = tensor([0.5163])
w = tensor([-3.5450], grad_fn=<LogBackward0>)
xGrad = tensor([17.8828])



이것은 PyTorch 생성 그래프입니다.





W 계산



1) 생성된 그래프에서 거꾸로 추적하여 함수를 생성합니다.





x = tensor([0.0559], requires_grad=True)
y = tensor([0.5163])
v = 0.0559 * 0.5163
  = 0.02886117
w = ln(0.02886117)
  =  -3.5452581859176



xGrad 계산



이 부분은 derivative ruleschain rule에 대한 배경 지식이 필요합니다.





참조



1) https://pytorch.org/blog/computational-graphs-constructed-in-pytorch/
2)
3) https://pytorch.org/blog/overview-of-pytorch-autograd-engine/

좋은 웹페이지 즐겨찾기