티스토리 뷰
카테고리 없음
[pytorch]Trying to backward through the graph a second time 문제 해결하기
지방사는개발자 2021. 1. 27. 15:35반응형
증상
- pytorch에서 loss.backward()를 호출하는 부분에서 아래와 같은 오류 발생
RuntimeError: Trying to backward through the graph a second time, but the saved intermediate results have already been freed. Specify retain_graph=True when calling backward the first time.
디버깅 방법
- 아래와 같이 computation graph를 그려서 어느 부분부터 그래프가 중복되는지 확인한다.
from torchviz import make_dot
...
make_dot(loss, params=dict(net.named_parameters())).render(f"graph", format="png")
문제 해결
- 문제는 computation graph가 중간에 겹쳐서 발생한 문제였다. computation graph가 겹치는 variable이 존재하였다.(기존 loop iteration에서 계산한 값을 다음 iteration에서 사용) 이런 variable은 index로 reference를 하지 않기 때문에 찾기가 극도록 곤란하였다.
- 그래서 computation graph가 겹치는 변수들은 매 iteration마다 다시 계산하도록 코드를 수정하였고 정상 작동함을 확인하였다.
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- tmux설치
- ubuntu unzip
- 고효율가전제품환급
- 택배박스
- 신종코로나
- 확진자동선
- 유화
- 국가별확진자
- docker_image
- linux zip
- ubuntu zip
- iphone사진다운로드
- 고효율가전제품
- tmux단축키
- 박스가격
- itemListElement
- linux unzip
- 이미지를텍스트로
- 4천원택배
- nossvc
- tmux활용
- google_search_console
- 박스크기
- 재수
- 구글워드
- windows사진보내기
- docker_container
- 정승제짱
- 코로나19
- 탐색경로오류
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함