민서네집

Windows 10 Ubuntu Bash Shell 에서 TensorFlow 설치하기 본문

Python

Windows 10 Ubuntu Bash Shell 에서 TensorFlow 설치하기

브라이언7 2016. 8. 15. 13:53

Windows 10 Ubuntu Bash Shell에서 TensorFlow를 설치하는 것은 쉽다. 


설정에서 개발자 모드로 설정해 주고 Windows 기능 켜기/끄기에서 Linux용 Windows 하위 시스템(베타)만 체크해 준 후, 명령 프롬프트에서 bash 라고 입력해 주면 됨.


그런데 jupyter 를 설치했는데, 제대로 실행이 안되고, kernel 이 계속 죽는다.

인터넷에 이에 대한 해결책이 나와 있는데, 그대로 해봐도 잘 안된다. 뭔가 꼬인것 같은데...


pycharm 에서 Windows 10 Ubuntu Bash Shell 에 설치된 python 을 통해서 Remote Debugging을 하고 싶은데, 잘 될지도 테스트 해 봐야함.


Windows 10 Ubuntu Bash Shell 에서 ssh 연결을 할 수 있다고 하고, 심지어는 GUI를 사용하는 Application도 돌릴 수 있다고 한다. ( 지금은 다 되는 것은 아니고, FireFox 정도 ) PyCharm도 설치할 수 있는지 확인해봐야겠다.






cf) http://blog.mosthege.net/2016/05/11/running-tensorflow-with-native-linux-binaries-in-the-windows-subsystem-for-linux/


cf) http://blog.ghatdev.xyz/8


Ubuntu Bash Shell은 Windows 10 Anniversary Update에 포함되어 있다.

Windows 10에서 최신 버전으로 업데이트가 되어 있는지 확인하자. 


(간혹 에러가 나서 업데이트가 실패하는 경우도 있는데, 필자도 알 수 없는 업데이트 에러 때문에 최신 버전으로 업데이트가 안되서 Windows 10 설치파일을 USB에 다운로드 받아서 재설치한 적이 있다.)


우선, 설정->업데이트 및 복구->개발자용 에 들어가서 '개발자 모드'에 체크해 준다(스샷 참고).


다음으로, 제어판(설정과 다르다)->프로그램 및 기능->Windows 기능 켜기/끄기 에 들어간다.


https://www.tensorflow.org/versions/r0.10/get_started/os_setup.html#pip-installation


다른것들을 설치하기 전에 sudo apt-get update를 한번 해 주고 넘어가자.


# Ubuntu/Linux 64-bit

$ sudo apt-get install python-pip python-dev


 # Ubuntu/Linux 64-bit, CPU only, Python 2.7

$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0rc0-cp27-none-linux_x86_64.whl


# Python 2

$ sudo pip install --upgrade $TF_BINARY_URL


https://www.tensorflow.org/versions/r0.10/get_started/os_setup.html#test-the-tensorflow-installation


heeseok@DESKTOP-M6RJ8E9:~$ python -c "import os; import inspect; import tensorflow; print(os.path.dirname(inspect.getfile(tensorflow)))"

/usr/local/lib/python2.7/dist-packages/tensorflow


jupyter 설치

python2는 pip이고 python3은 pip3이다.

$ sudo pip install jupyter


sudo 를 안 붙이면 다음과 같이 에러 발생.

OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/jupyter-1.0.0.dist-info'


jupyter가 설치되고, 실행되서, notebook 파일을 로드했는데, 바로 kernel이 죽고, restart 해도 계속 죽네요.


[W 09:02:52.802 NotebookApp] Timeout waiting for kernel_info reply from 0db1f590-4c0c-433b-821a-4741dcd01476


여기에 대해서 stackoverflow에 질문이 올라와 있지만 마땅한 해결책은 없네요.



http://stackoverflow.com/questions/38899873/how-to-start-jupyter-notebook-in-linux-sub-system-of-windows-10


Windows 10 Ubuntu Bash Shell에서 Server 프로그램을 돌리는 것을 목표로 하지 않고, 권장하지 않는다. jupyter notebook 도 그런 경우이다. 라고 comment가 되어 있습니다.


python2 kernel death in Ubuntu on Windows #1331



Unix sockets are not implemented #134


https://github.com/Microsoft/BashOnWindows/issues/134


Cannot connect to jupyter/ipython instance #185


https://github.com/Microsoft/BashOnWindows/issues/185


기존의 Docker 방식과 비교해보면

장점은 성능 향상?

CPU Core 수와 Memory를 따로 지정을 안해주니 System 의 자원을 좀 더 사용할 수 있지 않을까.

별도의 설정 없이 /mnt/c 와 /mnt/d 디렉터리를 통해 C드라이브와 D드라이브가 전체적으로 공유됩니다.


단점은 PyCharm 원격 디버깅이 안됨. -> 직접 설치는 되는지, ssh 접속해서 원격 디버깅 되는지 확인 필요.

Ubuntu Instance로 ssh 접속 할 수 없음. 

(cf. http://superuser.com/questions/1111591/how-can-i-ssh-into-bash-on-ubuntu-on-windows-10/1111750)



Windows 10's Bash shell can run graphical Linux applications with this trick


http://www.pcworld.com/article/3055403/windows/windows-10s-bash-shell-can-run-graphical-linux-applications-with-this-trick.html


윈도우 10 리눅스 서브시스템에서 OpenSSH Server 돌리는 방법


http://clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=329219&page=&sca=%5BPC%2F%EB%AA%A8%EB%B0%94%EC%9D%BC%5D


Jupyter notebook 을 디버그 모드로 돌려서 에러난 원인을 찾자


$ sudo jupyter notebook --debug

53952, 53981 등 포트를 Windows 방화벽에서 열어주자.


Windows 방화벽에서 bash.exe 프로그램을 예외처리 해 줬지만 그래도 에러...

Invalid argument (bundled/zeromq/src/tcp_address.cpp:190)


https://github.com/Microsoft/BashOnWindows/issues/649

https://github.com/Microsoft/BashOnWindows/issues/185


Docker로 돌렸을 때보다 속도 향상은?


https://www.tensorflow.org/versions/r0.10/get_started/os_setup.html#test-the-tensorflow-installation


# Using 'python -m' to find the program in the python search path:

$ python -m tensorflow.models.image.mnist.convolutional



55분 27초 걸렸는데, 

4개의 CPU Core를 모두 100% 정도 사용했지만

Docker for Windows에서 CPU 2개의 Core만 설정했을 때와 거의 같은 수준이다.




$ sudo pip uninstall jupyter


$ sudo pip install jupyter


해봐도 마찬가지로 jupyter notebook 에서 에러가 발생.

깔끔하게 실행시킬 수 있는 방법이 없을까?


Invalid argument (bundled/zeromq/src/tcp_address.cpp:190)


혹시 PC 이름을 /etc/hosts 파일에 추가해주면 될지로 모르겠다.


$ sudo vi /etc/hosts


127.0.0.1 DESKTOP-M6RJ8E9


을 추가해줬지만 동일한 에러 발생.


Invalid argument (bundled/zeromq/src/tcp_address.cpp:190)


Comments