-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
미분 계산이 이해가 안됩니다
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]가 나왔는데, 왜 이렇게 계산이 된건가요?
답변을 작성해보세요.
0
딥러닝호형
지식공유자2022.03.15
안녕하세요!
혹시 노트북 파일을 여러 번 실행하셨나요? grad는 이전 값을 누적하는 성질을 가지고 있습니다. 따라서 두 번 실행하면 2가 한 번 더 누적되어 4가 나오게 됩니다. 한 번 더 하시면 6이 나올겁니다. 따라서 정상적인 계산입니다. 만약 누적 하지 않고 반복하고 싶을 경우에는 x.grad.zero_() 를 추가하여 반복 전에 grad값을 0으로 만들어 주시면 됩니다!
감사합니다 :)
답변 1