강의

멘토링

커뮤니티

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

qkdl7717님의 프로필 이미지
qkdl7717

작성한 질문수

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

주가 예측 - 순환신경망(RNN)

옵티마이저랑 with

작성

·

181

1

  1. 중첩 for문 안에서

optimizer.zero_grad 의미를 잘 모르겠는데 어떤건가요 ??

그리고 왜 옵티마이저를 초기화하는지 이유가 궁금해요

 

  1. with torch.no_grad(): 이 부분의 기능도 모르겠어요

     

  2. 그리고 with함수에 대해서 구글검색해봐도 잘 모르겠는데 어떤기능을하나요 ??

 

좋은 강의 감사드립니다 :)

답변 1

0

딥러닝호형님의 프로필 이미지
딥러닝호형
지식공유자

안녕하세요!

1: 파이토치는 gradient 값을 누적하여 역전파를 진행합니다. 따라서 optimizer.zero_grad()을 설정하지 않으면 이 전 배치에 누적 된 값이 다음 계산에 들어오게 됩니다.

2,3: with torch.no_grad(): 는 모델의 파라메터의 requires_grad를 False로 만들어줍니다.

따라서 평가 시에는 최적화 계산(gradient)을 하지 않기 때문에 autograd 기능을 비활성(False)하여 메모리 사용량을 줄여주게 됩니다.

즉, 평가 시에 사용하시면 됩니다 :)

 

qkdl7717님의 프로필 이미지
qkdl7717

작성한 질문수

질문하기