메뉴 건너뛰기

XEDITION

study

https://datamasters.co.kr/48


1부에서는, tensorflow를 통해 gpu와 그 메모리들을 관리하는 방법에 대해 다루었다.

이번 포스팅에서는 실제로 어떠한 방법들을 사용해야 gpu를 효율적으로 다룰 수 있을지에 대해 논해본다.

Out of Memory?


당장 해법이 급하다면 넘어가도 무방하다

 

Out of Memory를 자주보고 있다면, 본인이 아래의 케이스에 속하는지 확인해보자. StackOverflow에도 종종 올라오는 대표적인 사례들이다.

  • batch_size가 너무나 크다.
  • 한 프로세스에서 다른 Model을 두번 compile 했다.
  • gpu를 사용하는 (또는 했던) 다른 프로세스가 아직 작업 중이거나, 작업이 끝났음에도 불구하고 terminate 되지 않았다.

물론 이 외에도 OOM을 일으키는 경우가 있겠지만, 십중팔구 위의 3가지 이유 때문에 발생한다고 생각하면 된다. 아니, 정말 이 외에 있던가...?

세 가지 경우 모두 keras에 별다른 옵션을 지정하지 않고 사용하면 더 자주 발생할 수 있는데, 이번 포스팅에서 어떠한 옵션들이 있는지도 가볍게 다루도록 한다.


batch_size


우선 batch_size란, keras.models.Model (이하 Model)에서 가장 많이, 그리고 때로는 가장 적게 사용되는 argument 중 하나이다. 

가장 적게 사용되는 이유로는, 여타 argument들과 같이 default값이 존재하기 때문으로, 본인이 학습 또는 예측의 속도에 대해 크게 신경쓰지 않으면 딱히 건들 이유가 없기 때문이기도 하다.

다음은 Model의 method 중 batch_size를 argument로 가지고 있는 method들 이다:

  • Model.fit
  • Model.evaluate
  • Model.predict

generator를 사용하지 않는다면 학습, 검증 그리고 예측에 당연히 들어가는 method 들이므로 한번쯤 사용해 봤을 것이다. 해당 argument들은 모두 기본값을 32로 가지고 있다. 

batch_size: Integer or None. Number of samples per step. If unspecified, batch_size will default to 32.

출처: Keras: Model (functional API)

 



 

 


 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
104 맥북 프로 M1 빅서 오류 "손상되었기 때문에 열 수 없습니다" 해결 방법 proin 2022.05.02 1
103 YOLOv4, YOLOv4-tiny 분석 proin 2021.12.16 3
102 OpenCV 4.5.1 Linux 설치 proin 2021.09.16 1
101 CUDA, CUDNN 설치 후 nvcc not found가 나올 때 proin 2021.07.15 4
100 %F0%9F%90%B3 Docker * 한글 설정, 한글 깨짐 해결하기 proin 2021.06.16 1
99 Darknet detector 여러가지 오류 처리하기 proin 2021.04.22 1
98 도커(Docker) 컨테이너 로케일 설정 proin 2021.03.31 1
97 리눅스 find -mtime 옵션 개념 익히기 file proin 2021.03.17 3
96 [리눅스/LInux] history 명령어 및 옵션- 이전에 수행한 명령어 리스트 확인, 동작원리 proin 2021.03.15 2
95 리눅스 파일 찾기, 파일속 문자열 찾기 proin 2021.03.03 1
94 [완료] Nvidia Docker (GPU 사용) 설치 proin 2021.02.18 1
93 How can I install pip for Python2.7 in Ubuntu 20.04 proin 2021.02.01 1
92 [TF 2.x] TensorFlow 2.0 에서 multi GPU 사용하기 - 텐서플로우 문제 해결 proin 2021.01.26 1
» Keras, Tensorflow에서 GPU 똑똑하게 사용하기 - 2부 proin 2021.01.26 2
90 Keras, Tensorflow에서 GPU 똑똑하게 사용하기 - 1부 proin 2021.01.26 1
89 Jupyter Notebook 사용법(주피터 노트북 설치 및 사용법) proin 2021.01.25 1
88 Raspberry Pi 3에 Extra Module(contrib) 포함하여 OpenCV 4.5.0 설치하는 방법 proin 2020.12.14 1
87 [Python] 데이터 베이스(mariaDB)를 연결하여 사용하는 방법 proin 2020.11.09 3
86 [Linux] sudo 실행 시 비밀번호 미리 입력하여 실행하기 proin 2020.11.04 1
85 bios 부팅 메뉴에서“Ubuntu”를 어떻게 제거합니까? (UEFI) proin 2020.09.04 1
위로