• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

미분 계산이 이해가 안됩니다

22.03.15 21:46 작성 조회수 127

0

x를 torch.ones(2, requires_grad=True) 로 계산했는데, 원래 예상한 값은
z' = x+1이므로 x.grad = tensor([2,2]) 인줄 알았는데, 아래와 같이 x =tensor([1., 1.], requires_grad=True) x.grad = tensor([4., 4.]) [4,4]가 나왔는데, 왜 이렇게 계산이 된건가요?

답변 1

답변을 작성해보세요.

0

안녕하세요!

 

혹시 노트북 파일을 여러 번 실행하셨나요? grad는 이전 값을 누적하는 성질을 가지고 있습니다. 따라서 두 번 실행하면 2가 한 번 더 누적되어 4가 나오게 됩니다. 한 번 더 하시면 6이 나올겁니다. 따라서 정상적인 계산입니다.  만약 누적 하지 않고 반복하고 싶을 경우에는 x.grad.zero_() 를 추가하여 반복 전에 grad값을 0으로 만들어 주시면 됩니다!

 

감사합니다 :)