- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
Windows 10 Ubuntu Bash Shell 에서 TensorFlow 설치하기 본문
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도 설치할 수 있는지 확인해봐야겠다.
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에 질문이 올라와 있지만 마땅한 해결책은 없네요.
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
윈도우 10 리눅스 서브시스템에서 OpenSSH Server 돌리는 방법
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)
'Python' 카테고리의 다른 글
[python] Image Crop/Resize , JPEG Image를 TensorFlow 입력으로 변환 (0) | 2016.08.18 |
---|---|
PyCharm 원격 빌드 설정 (0) | 2016.08.15 |
Jupyter notebook에서 Root 디렉터리 들어가기 (0) | 2016.08.15 |
[Python][PyCon 2016] 가위바위보 소스 (0) | 2016.08.14 |
Jupyter 에러 (Notebook does not appear to be JSON) (1) | 2016.08.07 |