CNTK 설치 및 테스트

마이크로소프트에서 오픈소스로 공개한 윈도우용 딥러닝 프레임워크인 CNTK를 설치해 보고 테스트 해보려고 한다.

Microsoft Cognitive Toolkit (CNTK) 깃허브 사이트는 다음과 같다.

https://github.com/Microsoft/CNTK

아래 설명대로 따라서 작업을 진행했다. 이 방식은 미리 컴파일된 바이너리를 받아서 설치하는 방식이 아니라 소스를 받아서 직접 컴파일해서 사용하는 방식이다.

https://github.com/Microsoft/CNTK/wiki/Setup-CNTK-with-script-on-Windows

 

1. Visual Studio Community 2015 Update3 설치

Visual Studio 메인(https://www.visualstudio.com/vs/)에서 Community를 받으면 현재 2017 버전이 받아진다. 문제는 다음에 설치해야 하는 CUDA 8이 2017버전이 아직 나오지 않았다. 그래서 2015 버전을 받을수 있는 vs_community2015 파일을 첨부한다. 이걸 받을려면 msdn 가입자인지 확인해서 받기가 쉽지않다.

그리고 설치시 Custom으로 선택해서 Visual C++를 선택하고 추가로 Python 도구도 추가한다. 나중에 Cntk.sln 솔루션 파일을 열면 파이썬 도구를 설치해야 한다는 팝업창이 뜬다.

 

2. NVIDIA CUDA 8 설치

https://developer.nvidia.com/CUDA-downloads 에서 OS 버전에 맞는 것을 선택해서 설치한다.

설치 마지막에 보여지는 요약창에 Visual Studio Integration 2015가 설치되었는지 확인한다.

 

3. Git 설치

https://git-scm.com/download/win 에 접속하면 자동으로 다운받아 진다. 디폴트 설정값으로 진행하면 된다.(Use Git from the Windows Command Prompt, Checkout Windows-style, commit UNIX-style line endings" at the "Configuring line endings)

 

4. CNTK 소스받기

아래와 같이 도스창에서 실행하면 c:\repos\cntk에 소스를 받는다.

c: && md \repos && cd \repos

git clone https://github.com/Microsoft/cntk

cd cntk

 

그리고 멀티 GPU와 멀티 PC지원하는 모듈인 Multiverso를 받고 난 GPU가 하나므로 설정을 아래와 같이 off 시킨다. 디폴트는 on상태라고 한다.

git submodule update --init -- Source/Multiverso

setx CNTK_ENABLE_ASGD false

 

1bit-SGD 설정을 on 시키면 트레이닝시 더 성능이 좋다고 하는데 라이센스도 틀리고 나하고는 별상관이 없는것 같아서 패스했다.

 

5. 개발환경 설치 스크립트 실행

CNTK를 컴파일하기 위해 필요한 기본 개발환경을 구성해주는 스크립트인데 이게 파워셀로 만들어져 있다. 이걸 실행하면 내PC에 필요한 프로그램 모듈들을 다운받아서 알아서 설치해준다. 단 도스창을 관리자 권한으로 실행시킨후 작업을 진행해야 문제가 없다. 

도시창에서 아래와 같이 명령하면 파워셀이 실행된다.

start powershell -executionpolicy remotesigned

 

파워셀에서 다음과 같이 폴더를 이동해서 스크립트를 실행한다. 

cd C:\repos\cntk\Tools\devInstall\Windows

.\DevInstall.ps1

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

cntk_shell.jpg

 

 

 

위에 이미지와 같은 모듈이 설치될 건데 진행할꺼냐고 묻는다. 여기에 y를 입력하고 엔터키를 눌러 진행하면 다운받고 설치하는 작업을 진행한다. 30분이상 걸린 듯 하다.

 

추가로 도스창에서 파이썬에대한 CNTK 환경설정을 한다. 나중에 CNTK에서 python API를 사용할 수 있다고 한다.

cd C:\local\Anaconda3-4.1.1-Windows-x86_64\scripts

conda env create --file c:\repos\cntk\scripts\install\windows\conda-windows-cntk-py35-environment.yml  --name cntk-py35

activate C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py35

 

setx CNTK_PY35_PATH C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py35

setx PYTHONPATH c:\repos\cntk\bindings\python;%PYTHONPATH%

 

6.CNTK 빌드 

다운받은 CNTK폴더밑에 CNTK.sln 솔루션 파일을 연다. 그리고 Release로 선택하고 빌드한다. 그러면 iso8859_1.hpp파일내에 특수문자때문에 다음과 같은 에러가 발생한다.

iso8859_1.hpp : error C2220: 경고가 오류로 처리되어 생성된 'object' 파일이 없습니다.

그러면 HTKDeserializers 프로젝트의 속성에서 c/c++ > 일반 에서 경고를 오류로 처리부분을 예에서 아니오로 변경하고 다시 컴파일한다. 그러면 에러가 2개 나오는데 전에 비활성화 시킨 Multiverso 와 MultiversoTest 프로젝트이므로 패스한다.

 

7.CNTK 테스트

도스창에서 다음과 같이 입력하여 경로를 설정하고 튜토리얼 폴더로 이동한다. 

set PATH=C:\repos\cntk\x64\release;%PATH%

cd C:\repos\cntk\Tutorials\HelloWorld-LogisticRegression

 

그리고 다음과 같이 실행시키고 에러없이 결과가 나오는지 확인한다.

cntk configFile=lr_bs.cntk makeMode=false deviceId=auto

 

deviceId를 auto로 넣으면 GPU를 알아서 찾아서 처리한다고 한다. 그러면 무슨 내용인지는 아직 모르지만 아래와 같이 트레이닝이 된 결과가 표시된다.

cntk_helloworld0.jpg

 

 

cntk_helloworld.jpg

 

 

python으로 예제 테스트 해보는데 제대로 안되고 있다. 딥러닝에대해 공부하기 위해 python 환경에서 먼저 해보려고 했는데 개발환경이 제대로 구성이 안되어, 먼저 python을 기본적으로 지원하는 Theano와 Keras를 설치해서 연습해볼까 한다.

[출처] https://m.blog.naver.com/PostView.nhn?blogId=beodeulpiri&logNo=221008763270&proxyReferer=http%3A%2F%2Fwww.google.com%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26source%3Dweb%26cd%3D3%26ved%3D0ahUKEwiv9c7i_srbAhVDqJQKHXqbBx4QFgg0MAI%26url%3Dhttp%253A%252F%252Fm.blog.naver.com%252Fbeodeulpiri%252F221008763270%26usg%3DAOvVaw2xiES8ZWNc1gpRHAvgizY7

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 86146
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 78646
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 95377
42 블록체인 기반 플랫폼 비즈니스를 이해하자 졸리운_곰 2017.09.10 1553
41 다운타임 없는 서비스 구현 패턴 file 졸리운_곰 2017.09.10 1229
40 테이블의 수직분할과 수평분할에 대한 이해 file 졸리운_곰 2017.09.10 3908
39 정규화와 응집도에 대한 고찰 file 졸리운_곰 2017.05.28 1782
38 머신러닝 새 도전…“클라우드를 벗어나라" file 졸리운_곰 2017.05.28 1711
37 보안성 높이는 공공 거래장부 블록체인 file 졸리운_곰 2017.05.28 1757
36 디지털, 속도의 전쟁 VS 데이터, 품질의 전쟁 file 졸리운_곰 2017.05.05 1515
35 04. 데이터 모델링의 3단계 진행 file 졸리운_곰 2016.03.15 1659
34 데이터베이스 설계의 기본 원리.pdf file 졸리운_곰 2016.03.15 2353
33 실체유형(Entity Type) 정의 사항 및 도출 file 졸리운_곰 2015.05.21 2197
32 마농의 SQL 백문백답: 단순하고 쉽게 작성하는 SQL 노하우 [1회] file 졸리운_곰 2015.05.21 1829
31 sql개발자-sql전문가자격시험 시험 예제.pdf file 졸리운_곰 2015.02.15 2302
30 데이터베이스 선정에는 비밀이 있다 - 4부 졸리운_곰 2015.01.15 2095
29 데이터베이스 선정에는 비밀이 있다 - 3부 졸리운_곰 2015.01.15 2042
28 데이터베이스 선정에는 비밀이 있다 - 2부 졸리운_곰 2015.01.15 1827
27 데이터베이스 선정에는 비밀이 있다 - 1부 졸리운_곰 2015.01.15 2391
26 지금 우리에게 필요한 것은 데이터베이스 성능 최적화이다 (2부) 졸리운_곰 2015.01.15 1484
25 우리에게 필요한 것은 데이터베이스 성능 (1부) 졸리운_곰 2015.01.15 1775
24 21회 결과 secret 졸리운_곰 2014.11.10 0
23 [데이터아키텍쳐준전문가] 시험 fail 자료 secret 졸리운_곰 2014.08.31 0
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED