안녕하세요.

TensorFlow docker image 를 윈도우즈에 설치하기

지난 포스트에서  docker의 마법을 활용해 (심지어 윈도우즈에다TensorFlow를 한 방에 설치해서 바로 활용하는 법을 정리한 바 있습니다.

이번에는 생성한 컨테이너를 다시 실행하거나 업데이트 하는 방법을 소개하고자 합니다. 이번 내용은 다음 도커 가이드에서 발췌하여 적용한 사례에 관한 부분입니다.


Docker 기본 사용법


앞서 docker에 대한 개념은 이해할 필요가 있는데 상위 링크에 자세한 설명이 있으니 참고하시기 바랍니다.


1. 컨테이너 시작


가상 머신을 수행하는 기기가 종료되면 (당연히) 여기서 (몰래) 돌고 있던 jupyter with TensorFlow server 역시 종료되게 됩니다. 따라서 Docker Quickstart Terminal를 다시 수행해야 합니다.


이때 설치된 컨테이너를 확인하기 위해 다음 명령을 수행합니다.


$ docker ps -a


상기 명령의 결과로 출력된 컨테이너 리스트 중에서 STATUS 항목으로 현재 수행 여부를 NAMES 에서 지정된 이름을 알 수 있습니다. 컨테이너가 수행 중이지 않다면 아래 명령과 더불어 NAMES 에 지정된 이름으로 해당 컨테이너를 실행시킬 수 있습니다.


$ docker start {컨테이너 이름}


 

2. 컨테이너 업데이트 하기


기본 사용법에 따르면 docker attach {컨테이터 이름} 을 통해 컨테이너에 접속할 수 있으나 활용 중인 TensorFlow container는 접속 시 console 없이 jupyter log 메시지만 출력하고 있는 관계로 아무런 명령을 수행할 수 없습니다. 따라서, 다음과 같이 외부에서 컨테이너에 명령을 수행할 수 있는 인터페이스를 활용하고자합니다.


docker exec {컨테이너 이름} {명령어 ... }


명령어는 bash shell에서 동작하는 대부분이 전달되는 것으로 보입니다. 

확인 차원에서 jupyter 의 확장 기능인 IPython Clusters 를 설치해 보았습니다.

자세한 설치 방법은 ipyparallel github guide를 참조했습니다.


$ docker ps

CONTAINER ID        IMAGE                            COMMAND             CREATED
             STATUS              PORTS                              NAMES
8eb60a8f3211        b.gcr.io/tensorflow/tensorflow   "/run_jupyter.sh"   5 weeks
 ago         Up 29 minutes       6006/tcp, 0.0.0.0:8888->8888/tcp   focused_yonath
$ docker exec focused_yonath pip ipyparallel


이와 같은 방식으로 컨테이너 외부에서도 추가 모듈을 설치하거나 업데이트할 수 있습니다.



안녕하세요. "생각의웹"입니다.


docker를 활용해 윈도우즈에서 TensorFlow가 설치된 iPython Jupiter를 설치해 활용하는 법 정리합니다.


먼저 원문은 다음과 같습니다: 

http://www.netinstructions.com/how-to-install-and-run-tensorflow-on-a-windows-pc/



원문을 따라서 수행하다보면 다음과 같은 문제점들이 발생합니다.

1) 계정 정보가 한글 ID인 경우, 경로 이상 문제 발생

2) TensorFlow docker image 설치 후 python 이 아닌 ipython server가 수행되고 shell이 뜨지 않음


이 현상들을 해결하고 다음과 같이 설치 및 활용 절차를 재정리합니다.


  1. Docker toolbox for Windows 설치: docker toolbox 설치 후 바탕화면에 등장하는 Docker Quickstart Terminal 을 실행합니다.
  2. default docker machine이 자동으로 생성됩니다. 다음 명령어로 생성된 docker machine을 확인합니다
    docker-machine ls
  3. TensorFlow가 preset 되어 있는 docker image를 cloning 하고 port forwarding 해서 수행합니다. 이때 8888 포트는 jupyter를 위해 6006 포트는 tensorboard를 위해 사용됩니다.
  4. docker run -p 8888:8888 -p 6006:6006 -it b.gcr.io/tensorflow/tensorflow
  5. 정상적으로 동작하면 다음과 같은 메세지가 표시됩니다.

  6. ...
    The Jupyter Notebook is running at : http:..[all ip addresses on your system]:8888/
    
  7. tensorboard를 사용하기 위해 다음과 같이 tensorboard를 활성화합니다.
     
  8. docker machine의 IP address를 확인합니다. 여기의 적힌 IP address가 접근 가능한 서버 주소가 됩니다.
  9. docker-machine ip default
  10. 만일 ip address가 192.168.99.100 이라면 browser를 열어 다음과 같이 tensorflow가 설치된 jupyter server에 접근할 수 있습니다.

  11. 192.168.99.100:8888

참고로 여기에 설치되어 있는 TensorFlow는 non-GPU 버전에 0.8입니다. 

GPU 사용 버전을 활용하시려면 github 가이드를 확인하시기 바랍니다.



이상입니다.

이제부터 tensorflow 공부를 제대로 해봐야 겠네요. 


  1. 생각의 웹 WebofThink 2016.05.03 21:24 신고

    ㅎㅎㅎ 간만에 포스팅했더니 비슷한 행동을 하고 있었나보군요. 부디 즐텐플하길!

  2. 파이팅건맨 2016.05.04 11:28

    앗, 저도 시도했다가 iPython 서버가 뜨는 문제 때문에 찾아낸 우회 방법입니다. 제것보다 이곳의 방법이 더 나아 보이기도 하고...ㅋ
    여튼, 참고 부탁드립니다~

    http://airpage.org/xe/language_data/20725

+ Recent posts