Tensorflow-GPU 를 리눅스 GPU 서버 주피터 노트북에서 돌리는데,
최근 지속적으로 GPU 메모리 오류가 발생하였음.
오류 내용
ResourceExhaustedError: SameWorkerRecvDone unable to allocate output tensor. Key: /job:localhost/replica:0/task:0/device:CPU:0;d7ea78dfeeeffe7a;/job:localhost/replica:0/task:0/device:GPU:0;edge_615_IteratorGetNext;0:0
[[{{node IteratorGetNext/_2}}]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info. This isn't available when running in Eager mode.
[Op:__inference_test_function_27688]
https://iambeginnerdeveloper.tistory.com/69
tensorflow GPU 메모리 오류 해결 | ResourceExhaustedError : OOM when allocating tensor with shape
SRGAN을 활용하여 고해상도 이미지를 생성하는 프로젝트를 진행하다가 GPU 메모리 오류를 마주했다. ( 해당 프로젝트 노트북 파일 : https://github.com/YOOHYOJEONG/AIFFEL_LMS_project/blob/master/ex16/ex16_SRGAN.ipynb
iambeginnerdeveloper.tistory.com
위 글쓴이님을 참고하여 배치사이즈, 이미지 사이즈를 줄여보았으나 소용이 없었고
아래와 같은 오류가 발생하였음
ResourceExhaustedError: failed to allocate memory [Op:Mul]
어찌 되었든 요지는 GPU 메모리가 점유중이라는 뜻이기에 아래 글을 참조함
출처:
리눅스 터미널에서 딥러닝 학습 강제 중단했을때 GPU에 남은 메모리 정리하는 방법
# 세줄요약 # ps aux | grep python 명령어를 사용하여 딥러닝 학습을 실행시킨 python 파일의 실행 ID를 찾는다. 찾은 아이디가 예를 들어 '1234' 라면, sudo kill -9 1234 명령어를 사용하여 Kill 명령어를 내린
pulsar-kkaturi.tistory.com
를 참조하여 할당된 메모리를 종료해 주었다
1. ps aux | grep python 명령어를 사용하여 딥러닝 학습을 실행시킨 python 파일의 실행 ID를 찾는다.
>>> ps aux | grep python
jovyan 4894 63.6 18.5 136732984 48807976 pts/2 Tl Apr06 565:54 python main.py
- 터미널에 명령어를 치면 위와 같이 나온다. python이 실행 중인 프로세스를 찾는 것.
- 실행 ID는 위의 예시의 경우에는 '4894'이다.
2. 찾은 아이디가 예를 들어 '1234' 라면, sudo kill -9 1234 명령어를 사용하여 Kill 명령어를 내린다.
>>> sudo kill -9 4894
3. nvidia-smi 명령어로 GPU 메모리가 정리되었는지 확인한다.
>>> nividia-smi
'Python' 카테고리의 다른 글
파이썬 string 앞에 0채우기 (0) | 2022.12.20 |
---|---|
이터레이터에서 왜 __iter__를 선언할까? (0) | 2022.11.25 |
[파이써닉한 코딩] 헷갈리는 이중중첩문 (0) | 2022.10.26 |
백준 1152번 - 단어의 개수 (0) | 2022.09.29 |
REPL 사용, 특정 경로 파일 카운트 (0) | 2022.09.26 |