윈도우

MXNet을 윈도우에 설치해보자.

ForceCore 2016. 11. 24. 11:55

이전 글에서 Babun을 설치한 것은 (http://forcecore.tistory.com/1360) MXNet을 위한 밑밥이었다! 개발환경을 조금씩 윈도우로 가져오는 것이다.


윈도우 하드웨어가 좋은데 (가난한 연구실의 자원보단 내가 게임하기 위한 자원이 더 좋으니까 -_-) 윈도우 머신을 굴리지 않으면 매우 아쉬울 것이다.


생각해보니 이렇게 하면 딥러닝을 하는 동안 게임을 못하잖아!


어쨌건.


MXNet을 쓰는 이유?

Keras / TensorFlow 는 prebuilt windows binary가 없기 때문이다. -_-;;;;;;;;; (!2016-12-12 이제 있다. 윈도우에서도 pip로 설치하면 알아서 binary가 받아진다.) Theano는 설치가 비교적 더 수월한 편이긴 한 것으로 보이지만. 그래도 기업들이 쓰는걸 쓰고 싶으니까.

Prebuilt binary를 주는데다가 아마존도 MXNet을 지원하는 마당에 안 쓸 이유가 없다.

그리고 예제코드의 질을 보면 다른 것들은 뭔가 개판의 기운이 느껴지는데 (함수화 등으로 code factoring을 해야 가독성이 좋은데 그런건 개나줬다) MXNet쪽은 코드가 더 깔끔해 보인다. 어쩌면 라이브러리 자체가 깔끔한 코드가 나오도록 된건... 가? 얼핏 보기엔 Keras처럼 high-level해보였다. 결정적으로 예제코드를 보면 if __name__ == "__main__" : 이 꼭 들어가 있는데 이런 예제는 딥러닝에 발을 들인 이후로 처음 본다. 깔끔하게 짜려면 저렇게 main을 구분해주는게 정상이다. -_-+ 본격적으로 남들이 쓰게 만들 용도로 제대로 만드는 프레임웍이나 라이브러리면 당연히 저렇게 해줘야지 ㅂㄷㅂㄷ


근데 돌리려면 사용자가 할 일이 많다.

아... 리눅스가 그립구나. 리눅스를 막상 설치하면 게임이 그립고. 하아.

리눅스는 패키지 좀 깔거나, 아치리눅스 쓰는사람은 AUR좀 돌려주면 다 설치 되는데.


우선 Visual Studio 2015부터 깔고 들어간다.

여기서 주의사항: http://stackoverflow.com/questions/33323172/vcvarsall-bat-needed-for-python-to-compile-missing-from-visual-studio-2015-v-1

Next Next 설치하면 설치되지 않는 요소가 있는데 중요한 요소이다. Common Tools for Visual Studio 2015를 설치해야지 vcvarsall.bat 어쩌구 하는 에러를 pip에서 보지 않을 수 있다.


그리고 파이썬을 반드시 64비트용으로 설치한다.


WindowsError: [Error 193] %1 is not a valid Win32 application in Python


이런 에러가 보고 싶지 않으면.


그리고 파이썬을 좀 준비해주자.


numpy, scipy를 좋은 것을 설치해야 한다. pip로 numpy가 설치되긴 하는데 scipy를 설치할 수 없을 것이다;;


http://www.lfd.uci.edu/~gohlke/pythonlibs/


여기서 numpy와 scipy를 세트로 받자. 설치는 cmd에서

> pip install [.whl file name]

으로 설치할 수 있다.


NVidia에서 CUDNN, CUDA 를 받아 설치하고... 드라이버 최신 깔고... 이거 두개는 쉬움. 받고 깔면 되니까. 한개는 안 쉽다. CUDNN은 zip파일로 되어 있는데 일단은 제껴둔다.


대망의 MXNet prebuilt windows binary를 받고... 적절한 곳에 압축을 푼다. README를 읽는다. 설치법이 적혀있다. 이하 readme와 동일:


D:\MXNet이라든지.


그리고 setupenv.cmd 실행.


그리고 파이썬 모듈을 설치해야 하는데... 그 전에, python폴더 안의 readme.md를 보면 CUDNN을 깔아달라고 적혀있다. 어떻게 하냐면, 


D:\MXNet\3rdparty\cudnn


여기에 깔란 것이다. 압축만 잘 해제하면 된다. 잘 하고 나면 D:\MXNet\3rdparty\cudnn\bin\cudnn64_5.dll 이 존재하게 될 것이다.


그 다음, python 폴더 안에 cmd shell을 열고


python setup.py install


실행. 위에서 numpy를 설치를 안 했으면 numpy가 컴파일 되어 실행될 것이나 성능은 안 좋을 것이다. 반드시 이전 단계에서 MKL 라이브러리를 사용해 빌드한 numpy를 받도록 하자.


MXNet이 설치되고 하면 아래대로 잘 되어야 한다:


   C:\> python

    >>> import mxnet as mx

    >>> a=mx.nd.zeros((2,3))

    >>> print(a.asnumpy())

    [[0. 0. 0.]

     [0. 0. 0.]]


참 쉽죠?