본문 바로가기
  • AI 개발자가 될래요
Deep Learning

[딥러닝] loss의 backward?

by 꿀개 2022. 10. 6.

 

현재 연구 중인 모델의 성능을 높이기 위해 loss를 변경해보던 중 의문이 생겼다.

 

train 코드에서는 loss.backward() 메소드를 호출하는데,

loss 클래스에는 backward 메소드가 정의되어있지 않았다.!

 

어라?? 클래스 내에 메소드가 없는데 어떻게 호출하지?!? 해서 찾아보다가 한 가지 사실을 깨달았다.

 

forward 함수만 정의하고 나면, 

변화도를 계산하는 backward 함수는 autograd 를 사용하여 자동으로 정의된다.

 

여기서 autograd는 pytorch의 자동 미분 엔진이다. 더욱 자세한 내용은 아래 글을 참고하면 된다.

https://hsyaloe.tistory.com/35

 

[딥러닝] pytorch의 autograd 란?

torch.autograd 는 신경망 학습을 지원하는 PyTorch의 자동 미분 엔진이다. autograd가 신경망 학습을 어떻게 돕는지에 대해 알아보도록 하자. 신경망의 학습 일단 autograd에 대해 알아보기 앞서 신경망의

hsyaloe.tistory.com

 

다음부터는 backward가 없다고 당황하지 말고 forward에만 집중하도록 하자.