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

Deep Learning20

[딥러닝] pytorch의 autograd 란? torch.autograd 는 신경망 학습을 지원하는 PyTorch의 자동 미분 엔진이다. autograd가 신경망 학습을 어떻게 돕는지에 대해 알아보도록 하자. 신경망의 학습 일단 autograd에 대해 알아보기 앞서 신경망의 학습에 대해 알아보자. 크게 2단계로 나눠진다: - 순전파(Forward Propagation): 정답을 맞추기 위해 추측하는 단계. - 역전파(Backward Propagation) : 추측한 값에서 발생한 오류에 비례하여 매개변수들을 적절히 조절하는 단계. 출력으로부터 역방향으로 이동하면서 오류에 대한 함수들의 매개변수들의 미분값(gradient)을 수집하고, 매개변수들을 최적화. 모델의 예측값과 그에 해당하는 정답(label)을 사용하여 오차(loss)를 계산하고, 역전파하.. 2022. 10. 6.
[딥러닝] loss의 backward? 현재 연구 중인 모델의 성능을 높이기 위해 loss를 변경해보던 중 의문이 생겼다. train 코드에서는 loss.backward() 메소드를 호출하는데, loss 클래스에는 backward 메소드가 정의되어있지 않았다.! 어라?? 클래스 내에 메소드가 없는데 어떻게 호출하지?!? 해서 찾아보다가 한 가지 사실을 깨달았다. forward 함수만 정의하고 나면, 변화도를 계산하는 backward 함수는 autograd 를 사용하여 자동으로 정의된다. 여기서 autograd는 pytorch의 자동 미분 엔진이다. 더욱 자세한 내용은 아래 글을 참고하면 된다. https://hsyaloe.tistory.com/35 [딥러닝] pytorch의 autograd 란? torch.autograd 는 신경망 학습을 지.. 2022. 10. 6.