최근 딥러닝에 관심을 가지게 되면서 관련된 책을 구입해 독학해보는 중이다.
이 책이 딥러닝을 처음 공부하기에는 최고의 책이 아닌가 싶다. 파이썬, 텐서플로우, 케라스 조합으로 딥러닝의 기초부터 자세하고 쉽게 설명해 마음이 든다. (다만 책에 오류와 오타가 좀 있는데 한번 문의해볼 생각이다.)
그래서 이 참에 위 책의 내용을 토대로 배운 딥러닝 개발환경을 구축하는 방법을 공유하고자 한다. 우선 필자의 경우는 노트북에 외장 그래픽 카드가 장착되어 있으므로 GPU를 사용하는 방식으로 구축하고자 한다. 만약 본인이 GPU가 없다면 아래 내용의 3번부터 시작하면 된다.
1. CUDA 설치
GPU의 연산을 효율적으로 도와주는 CUDA는 아래 링크에서 다운이 가능하다.
https://developer.nvidia.com/cuda-90-download-archive
최신 버전의 텐서플로우는 CUDA 9.0을 지원하기 때문에 9.0버전을 다운받는다. 다운 받은 후 설치하면 C:\Program Files\NVIDIA GPU Computing Toolkit 경로에 CUDA 파일이 생겼음을 확인할 수 있다.
2. cudnn 설치
cudnn은 일종의 CUDA 라이브러리다. 다만 cudnn은 그 버전에 따라 텐서플로우의 컨벌루션 계산의 오류가 발생할 수 있으므로 주의해야한다. 여기서는 7.3.1 버전을 설치했는데 정상 작동함을 확인했다.
https://developer.nvidia.com/rdp/cudnn-archive
위 링크에서 Download cuDNN v7.3.1 (Sept 28, 2018), for CUDA 9.0를 선택해 다운받으면 된다. 다운받은 후 압축을 풀면 가장 하위 폴더에 4~5개의 파일과 폴더가 있는데 이를 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 경로에 덮어씌우면 된다.
3. 아나콘다 설치
딥러닝은 사용환경에 따라 개발을 위한 라이브러리와 파이썬 버전들이 모두 다르기 때문에 이를 효율적으로 관리해주는 아나콘다가 필요하다.
https://www.anaconda.com/download/
링크에서 파이썬 3.7버전의 아나콘다(현 시점 기준)를 설치한다. 설치하면 아래와 같이 Anaconda Prompt 를 열어서 작업할 수 있다.
4. 새 프로젝트 만들기
아래의 명령어를 Anaconda Prompt에 입력해 새 프로젝트를 만든다.
conda create -n deeplearning python=3.5 numpy matplotlib cython Pillow tensorflow-gpu keras |
deeplearning은 프로젝트 이름, python= 뒤에는 원하는 파이썬 버전 (3.7버전 이하만 가능)이다. 그리고 뒤에 필요한 라이브러리들을 띄어쓰기로 구분하여 입력하면 된다. 만약 컴퓨터에 GPU가 없다면 tensorflow-gpu대신 tensorflow를 입력하면 된다.
이제 아래와 같이 출력된다.
## Package Plan ## environment location: C:\Users\nicet\Anaconda3\envs\deeplearning added / updated specs: - cython - keras - matplotlib - numpy - pillow - python=3.5 - tensorflow-gpu The following packages will be downloaded: package | build ---------------------------|----------------- libtiff-4.0.10 | h2929a5b_1001 1.1 MB tensorflow-base-1.10.0 |gpu_py35h6e53903_0 171.2 MB tensorflow-1.10.0 |gpu_py35ha5d5ef7_0 4 KB cudnn-7.1.4 | cuda9.0_0 192.3 MB tensorflow-gpu-1.10.0 | hf154084_0 3 KB cudatoolkit-9.0 | 1 339.8 MB ca-certificates-2018.12.5 | 0 153 KB _tflow_select-2.1.0 | gpu 3 KB ------------------------------------------------------------ Total: 704.4 MB The following NEW packages will be INSTALLED: _tflow_select: 2.1.0-gpu absl-py: 0.4.1-py35_0 astor: 0.7.1-py35_0 blas: 1.0-mkl ca-certificates: 2018.12.5-0 certifi: 2018.8.24-py35_1 cudatoolkit: 9.0-1 cudnn: 7.1.4-cuda9.0_0 cycler: 0.10.0-py35hcc71164_0 cython: 0.28.5-py35h6538335_0 freetype: 2.9.1-ha9979f8_1 gast: 0.2.0-py35_0 grpcio: 1.12.1-py35h1a1b453_0 h5py: 2.8.0-py35h3bdd7fb_2 hdf5: 1.10.2-hac2f561_1 icc_rt: 2019.0.0-h0cc432a_1 icu: 58.2-ha66f8fd_1 intel-openmp: 2019.1-144 jpeg: 9b-hb83a4c4_2 keras: 2.2.2-0 keras-applications: 1.0.4-py35_1 keras-base: 2.2.2-py35_0 keras-preprocessing: 1.0.2-py35_1 kiwisolver: 1.0.1-py35h6538335_0 libpng: 1.6.36-h2a8f88b_0 libprotobuf: 3.6.0-h1a1b453_0 libtiff: 4.0.10-h2929a5b_1001 markdown: 2.6.11-py35_0 matplotlib: 3.0.0-py35hd159220_0 mkl: 2018.0.3-1 mkl_fft: 1.0.6-py35hdbbee80_0 mkl_random: 1.0.1-py35h77b88f5_1 numpy: 1.15.2-py35ha559c80_0 numpy-base: 1.15.2-py35h8128ebf_0 olefile: 0.46-py35_0 openssl: 1.1.1a-he774522_0 pillow: 5.2.0-py35h08bbbbd_0 pip: 10.0.1-py35_0 protobuf: 3.6.0-py35he025d50_0 pyparsing: 2.2.1-py35_0 pyqt: 5.9.2-py35h6538335_2 python: 3.5.6-he025d50_0 python-dateutil: 2.7.3-py35_0 pytz: 2018.5-py35_0 pyyaml: 3.13-py35hfa6e2cd_0 qt: 5.9.7-vc14h73c81de_0 scipy: 1.1.0-py35h4f6bf74_1 setuptools: 40.2.0-py35_0 sip: 4.19.8-py35h6538335_0 six: 1.11.0-py35_1 sqlite: 3.26.0-he774522_0 tensorboard: 1.10.0-py35he025d50_0 tensorflow: 1.10.0-gpu_py35ha5d5ef7_0 tensorflow-base: 1.10.0-gpu_py35h6e53903_0 tensorflow-gpu: 1.10.0-hf154084_0 termcolor: 1.1.0-py35_1 tk: 8.6.8-hfa6e2cd_0 tornado: 5.1.1-py35hfa6e2cd_0 vc: 14.1-h0510ff6_4 vs2015_runtime: 14.15.26706-h3a45250_0 werkzeug: 0.14.1-py35_0 wheel: 0.31.1-py35_0 wincertstore: 0.2-py35hfebbdb8_0 yaml: 0.1.7-hc54c509_2 zlib: 1.2.11-h62dcd97_3 Proceed ([y]/n)? |
y를 입력하면 라이브러리들이 설치가 되며 새 프로젝트가 생성된다. 만약 또 다른 라이브러리를 설치해야 한다면 activate deeplearning 입력후 pip install 라이브러리 이름 이렇게 입력해 설치하면 된다.
'머신러닝, 딥러닝' 카테고리의 다른 글
텐서플로우, 케라스로 크롬 공룡게임 AI 만들기 #2 - 데이터 만들기 (1) | 2019.01.30 |
---|---|
텐서플로우, 케라스로 크롬 공룡게임 AI 만들기 #1 - 템플릿 매칭 (6) | 2019.01.26 |
윈도우 환경에서 YOLO로 실시간 객체탐지 (11) | 2019.01.25 |
네이버 얼굴인식 API를 이용해 얼굴인식하기 (0) | 2018.11.13 |
딥러닝 기반의 GOTURN 방식으로 물체 추적하기 [OpenCV/Python] (0) | 2018.11.01 |