지구탐사

keras에서 GPU 사용하기 본문

ML study/머신러닝을 하다가

keras에서 GPU 사용하기

mwna40000 2019. 5. 10. 18:51

keras를 이용해서 데이터 분석을 하다 보면 CPU만으로는 학습이 오래걸려서 GPU를 사용하고 싶을 때가 있다.

그리고 사람들이 하도 GPU~ GPU~ 해서 CPU를 사용하여 학습 하는 것과 GPU 사용하여 학습 하는 경우 시간 차이가 얼마나 나는지 궁금증이 생기기도 한다.

이 글은 keras에서 GPU를 사용하는 방법사용했을 때 학습 시간 차이를 설명하고 있다.

읽기 전 몇 가지 가정이 필요하다.

  • 독자가 NVIDIA GUP가 있다. 확인하는 방법은 여기에서.
  • GUDA Toolkit 설치 경로를 바꾸지 않았다.
  • Anaconda 사용법을 알고 있다. 

위의 가정이 성립한다면 아래로 내려가자.


keras에서 GPU를 사용하는 방법을 간략하게 설명하면 다음과 같다:

  1. GUDA Toolkit설치
  2. cuDNN 설치
  3. pip install tensorflow-gpu

불친절 하니까 조금 더 설명을 해보자.

  1. 아래 링크에서 OS에 맞는 GUDA Toolkit 설치 (19년 5월 10일 기준, 10.0 download)
  2. NVIDA 가입 후 CUDA 버전에 맞는 cuDNN 설치
    • https://developer.nvidia.com/rdp/cudnn-download
    • 다운로드한 파일의 압축을 해제하면 bin, include, lib 등을 포함하고 있다.
    • 파일들을 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 폴더로 옮긴다.
  3. anaconda 프롬프트에서 pip install tensorflow-gpu 입력

참고로, anaconda 프롬프트에서 3번 과정은 가상공간(environment)에서 하는 것을 추천한다. anaconad 가상공간에 대한 것은 여기를 읽어보자.

여기까지 무사히 되었다면 keras로 학습할 때 내 컴퓨터가 정말 GPU를 사용하는지, 사용했을 때와 시간 차이가 얼마나 나는지 확인해 보자. 


확인 절차는 다음과 같다:

  • 가상공간 2개를 만든다.  
  • 하나는 tensorflow를 설치하고, 다른 하나는 위에서 설명한 대로 tensorflow-gpu를 설치한다.
  • 같은 훈련 데이터로 학습시킨 후 학습시간을 비교한다.

다음은 "케라스 창시자에게 배우는 딥러닝"에서 chap.5 부분을 학습하면서 캡처한 것이다. 

CPU로 학습할 때 

훈련 데이터를 한 번 학습하는데 90초 이상 걸린다
CPU 열일 중. 반면 GPU는 놀고 있다.

GPU로 학습할 때

같은 데이터로 8초 밖에 걸리지 않는다.
GPU 열일 중

오! 이래서 GPU~ GPU~ 하는구나!

Comments