IT

QGIS 3.0에서 텐서플로(TensorFlow)와 케라스(Keras) 설정하기

유병혁 2018. 4. 5. 23:51

안녕하세요? 지난 2월 23일 QGIS 3.0 버전이 출시되었습니다. 이번 버전은 15번째 QGIS 개발자 미팅이 개최되었던 스페인 지로나

(Girona)인데요, 신규버전 출시로 기존 2.14 버전은 retire하고 이제 2.18이 LTS(Long Term Support: 장기 지원 버전)가 되었습니다. 


QGIS 3.0은 Qt4가 Qt5로, PyQt4가 PyQt5로, Python 2.7이 Python3로 업데이트되었고 QGIS API가 자체 개선되었습니다.

이 글에서는 QGIS 3.0에서 딥러닝 라이브러리 '케라스(Keras)'와 '텐서플로(TensorFlow)'가 구동되도록 설정해 보겠습니다.


QGIS 공식 홈페이지에 접속합니다. | https://www.qgis.org/ko/site/

내 컴퓨터의 Windows 버전(32비트 또는 64비트)에 맞는 'QGIS 독립 설치관리자 버전 3.0'을 다운로드 받아 설치합니다.


설치가 완료되면 바탕화면에 QGIS 3.0 폴더가 자동 생성되며 아래와 같은 바로가기 파일들이 들어 있습니다.


OSGeo4W Shell을 우클릭하고 '관리자 권한으로 실행'을 클릭해 보겠습니다.

아래 명령어로 OSGeo4W Shell에서 '이용가능한 명령어 목록'을 확인합니다.

o-help


OSGeo4W Shell은 파이썬 2.7과 파이썬 3.6을 함께 제공하고 있습니다.


현재 python 명령어를 입력하면 Python 2.7.5가 실행됩니다.


OSGeo4W Shell 실행파일 'OSGeo4W.bat'을 노트패드++와 같은 소스코드 편집기로 열어보겠습니다(.


참고로, QGIS 3.0의 환경변수 설정은 아래 문의 글을 참조하였습니다:
Environment variables for QGIS 3 plugin development on Windows
https://gis.stackexchange.com/questions/268573/environment-variables-for-qgis-3-plugin-development-on-windows


환경변수 설정과 관련된 아래 3개 파일을 소스코드 편집기로 확인한 결과입니다:

  • o4w_env.bat
  • py3_env.bat
  • qt5_env.bat




py3_env.bat는 파이썬 3를 위한 환경변수가 설정되어 있는데요, OSGeo4W.bat에서 이 파일을 호출하도록 1줄을 추가하겠습니다.

call "%~dp0\bin\py3_env.bat"


이제 OSGeo4W Shell에서 python 명령을 실행하면, 아래와 같이 Python 3.6.0이 실행됩니다.


아래와 같이 텐서플로와 케라스를 설치합니다.

패키지는 다음 위치에 설치됩니다: C:\Program Files\QGIS 3.0\apps\Python36\lib\site-packages

python -m pip install --upgrade tensorflow
python -m pip install --upgrade keras



이제 python에서 텐서플로와 케라스를 호출할 수 있습니다.

케라스는 기본 백엔드로 텐서플로를 사용하며 CNTK, 시아노 등 다중 백엔드를 지원합니다.

따라서 케라스를 사용하면 케라스 라이브러리와 최신 딥러닝 라이브러리의 장점을 모두 이용할 수 있습니다.


이번에는 텐서플로 GPU 버전을 설정해 보겠습니다.


먼저 CUDA Toolkit과 cuDNN을 설치합니다. cuDNN은 압축을 푼 후, CUDA 위치에 덮어쓰기합니다.

py3_env.dat 파일을 Notepad++에서 열고 path를 추가합니다.

set PATH=%PATH%;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
set PATH=%PATH%;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp


이제 텐서플로 GPU 버전을 설치합니다.

python -m pip install --upgrade tensorflow-gpu



OSGeo4W.bat를 다시 시작하면 텐서플로가 정상 임포트됩니다.


QGIS 3.0을 실행하고 '설정 > 옵션'에서 '시스템' 탭을 선택하고,


'사용자 정의 변수 사용'을 체크하고 + 버튼을 누른 후, 적용은 '붙이기', 변수는 PATH, 값은 아래를 추가합니다:

;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp


이제 QGIS 3.0에서 텐서플로와 케라스를 불러올 수 있습니다.


그 밖에 텐서플로 작동을 위한 의존성 라이브러리를 설치합니다:

python -m pip install pillow
python -m pip install lxml
python -m pip install jupyter
python -m pip install matplotlib