본문 바로가기
Development

Windows Subsystem Linux(WSL)에서 TensorFlow 설치 및 실행하기

by IMCOMKING 2016. 11. 21.

Windows Subsystem Linux(WSL)이란

윈도우의 시스템콜을 우분투와 연결하여, 동시에 2개의 운영체제를 사용하는 가상환경

http://www.itworld.co.kr/news/105480


그리고 WSL 1의 느린 파일 엑세스와 드라이버 문제 등을 해결한 WSL 2이 현재 진행형으로 개발중이다.

WSL 2 특징 및 설치방법


WSL 1 설치방법

- 설정 -> 업데이트 및 복구 -> 개발자용 -> 개발자 모드선택

- 제어판 -> 프로그램 -> '프로그램 및 기능'의 'Windows 기능 켜기/끄기' -> 'Linux용 Windows 하위 시스템(베타)' 선택

- 재부팅

- Microsoft Store에서 ubuntu 16.04를 검색해서 다운로드하고 실행

- ubuntu 설치가 완료되면, id와 passwd를 입력하고 ubuntu를 사용


https://www.windowscentral.com/install-windows-subsystem-linux-windows-10

https://docs.microsoft.com/en-us/windows/wsl/install-win10



WSL의 Ubuntu 디렉토리 직접 접근

WSL에서 사용하는 디렉토리를 윈도우즈 파일시스템에서도 확인해볼 수는 있다.


C:\Users\{유저이름}\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs


위 경로에 가면 root directory를 볼 수 있다. 그러나 WSL에서는 interoperatability를 지원하지 않기 때문에, 이 경로를 윈도우로 제어하는 것을 권장하지 않는다. 만약 필요하다면 /mnt/c/Users/{유저이름}/ubuntu 이 위치에 directory를 만들고, symbolic link를 만들어서 사용하길 권장한다.

export ff=/mnt/c/Users/{유저이름}/ubuntu


https://askubuntu.com/questions/759880/where-is-the-ubuntu-file-system-root-directory-in-windows-nt-subsystem-and-vice/885884



Putty를 이용해서 localhost ubuntu 접속하기

CLI 접속을 위해 putty를 사용하고자 하는 경우, 아래와 같이 ssh서버를 열어서 localhost에 접속할 수 있다. 근데 여러가지로 봤을 때, 기본으로 설치된 ubuntu 를 사용하는게 가장 사용성이 좋았다.

* Putty 설치

https://newsight.tistory.com/345

* Putty 실행

127.0.0.1 에 22포트 접속

https://superuser.com/questions/1111591/how-can-i-ssh-into-bash-on-ubuntu-on-windows-10


TensorFlow 설치하기

일반적인 ubuntu에서의 pip를 이용한 tensorflow 설치 방법을 따르면 된다. 그러나 현재 WSL에서의 GPU 사용은 개발 진행중인 상태로, 아직은 cpu버전밖에 사용할 수 없다.(https://www.reddit.com/r/bashonubuntuonwindows/comments/6tnlzi/gpu_support_for_wsl_survey/)


http://newsight.tistory.com/92

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


* WSL에서 GPU를 사용하기 위해서는 최근에 업데이트 된 WSL 2을 사용하여야한다.



여러가지 trouble shooting

WSL에 띄운 웹서버를 외부에서 접속할 경우 원래는 자동으로 방화벽 해제 팝업이 뜨는데, 그렇지 않은 경우 아래와 같이 수동으로 inbound 설정을 걸어주어야한다.

https://www.nextofwindows.com/allow-server-running-inside-wsl-to-be-accessible-outside-windows-10-host




댓글