강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Ha Eun Lee님의 프로필 이미지
Ha Eun Lee

작성한 질문수

[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지

역전파(Backpropagation)

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

작성

·

193

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으로 만들어 주시면 됩니다!

 

감사합니다 :)

Ha Eun Lee님의 프로필 이미지
Ha Eun Lee

작성한 질문수

질문하기