티스토리 뷰
딥러닝 모델을 만들고 훈련 epoch를 돌리는데 이상하게도 시스템 RAM을 계속해서 잡아먹더라
GPU 메모리도 아니고 시스템 메모리를 계속해서 잡아먹는게 이상했다.
처음 보는 문제이다보니 해결하기 위해서 한참을 헤메였는데 언제나 그렇지만 답은 간단했다.
보통 Loss의 history를 저장하기 위해 loss_history라는 리스트를 만들고 epoch를 돌며 나오는 훈련셋에서의 loss값을 저장하는 경우가 많은데 loss_history.append(loss.item())와 같은 형태로 많이 이용한다.
여기서 loss의 단순 value값만 저장하면 되는데 따라서 우리는 loss.item()이라는 기능을 이용해서 그냥 단순 loss의 숫자값만 따로 떼와서 history에 저장한다.
근데 여기서 .item() 함수를 이용하지 않으면 loss에 연결된 grad_fn_까지 저장하게 되는것으로 추정되는데 이러면 value만 저장할때 보다 훨씬 데이터 크기가 커지나보다. 이것을 계속해서 history에 append하다보니 엄청나게 빠른 속도로 시스템 메모리가 소모되는 것으로 생각한다.
결론 : 혹시 본인이 loss를 축적하는 history에서 loss.item()함수를 적용하지 않고 loss 자체를 append하고 있는지 확인
또는 iterative하게 축적되는 코드들을 유심히 살펴보다보면 분명히 무언가 문제가 있을것이다.
'Computer > 코딩 개꿀팁' 카테고리의 다른 글
[꿀팁] 리눅스에서 백그라운드로 명령 작업하기 (0) | 2023.04.25 |
---|---|
[꿀팁] 파이썬 코드를 실행할 때 사용할 GPU를 설정하는 방법(리눅스) (0) | 2023.04.15 |
[꿀팁]파이썬을 이용해서 파일명을 일괄로 변경해보자 (0) | 2023.03.05 |
Pytorch tensor를 더 많이/정확하게 표기하고 싶을 때 (0) | 2023.02.23 |
내 모델이 cpu에 있는지 cuda에 있는지 확인하는 방법 (0) | 2023.02.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- manim
- manim library
- 최대우도추정
- eigenvalue
- vae
- manimtutorial
- ai인공지능
- 3B1B따라잡기
- kld
- 선형대수
- 3b1b
- variational autoencoder
- 제한볼츠만머신
- Manimlibrary
- 백준
- 오일석기계학습
- 기계학습
- 파이썬
- MorganCircularfingerprint
- 인공지능
- MatrixAlgebra
- kl divergence
- eigenvector
- 이왜안
- elementry matrix
- MLE
- Matrix algebra
- 베이즈정리
- ai신약개발
- marginal likelihood
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함