현재 연구 중인 모델의 성능을 높이기 위해 loss를 변경해보던 중 의문이 생겼다.
train 코드에서는 loss.backward() 메소드를 호출하는데,
loss 클래스에는 backward 메소드가 정의되어있지 않았다.!
어라?? 클래스 내에 메소드가 없는데 어떻게 호출하지?!? 해서 찾아보다가 한 가지 사실을 깨달았다.
forward 함수만 정의하고 나면,
변화도를 계산하는 backward 함수는 autograd 를 사용하여 자동으로 정의된다.
여기서 autograd는 pytorch의 자동 미분 엔진이다. 더욱 자세한 내용은 아래 글을 참고하면 된다.
https://hsyaloe.tistory.com/35
다음부터는 backward가 없다고 당황하지 말고 forward에만 집중하도록 하자.
'Deep Learning' 카테고리의 다른 글
[Tensorflow] tf-nightly 란?, 설치법, 사용법 (1) | 2023.02.28 |
---|---|
[Pytorch] 분산 훈련 명령어 / torch.distributed (0) | 2023.02.14 |
[Image Inpainting - MAT] metrics 문제에 대하여 (0) | 2023.01.03 |
Object Detection, Segmentation 분야에 자주 사용되는 MIoU에 대하여.. (0) | 2022.12.22 |
[딥러닝] pytorch의 autograd 란? (0) | 2022.10.06 |