Easy ways

[Docker]TensorFlow Jupyter 서버 만들기 본문

프로그램 개발/Docker

[Docker]TensorFlow Jupyter 서버 만들기

softColors 2020. 12. 11. 13:47
반응형

요즘 인공지능이 아주 핫하죠!

대세를 따라 인공지능 분야를 공부하고 싶어하는 사람들이 많습니다.

 

인공지능을 만들기 위해 컴퓨터에 텐서플로우나 파이토치등을 설치해 환경을 구축해야하는데

이 환경 구축이 사실 제일 어렵고 제일 힘들죠

환경 구축의 어려움에 대해선 많은 분들이 고개를 끄덕이실 겁니다.

특히 여러명이 있는 곳에선 이 문제가 더 두드러집니다.

 

 

 

 

하지만 그림과 같은 구조로 텐서플로우 서버를 하나 만들고 IP 주소를 통해 접속한다면

환경구축을 컴퓨터마다 일일히 진행하지 않더라도 모두 AI 모델을 만들 수 있습니다!

 

오늘은

위 그림과 같이 여러명이 있는 공간등에서

우분투 서버를 한대를 만들어 두고 

IP 주소를 통해 주피터 노트북으로 접속하여

텐서플로우를 실행 시킬 수 있는 예제를 만들어보겠습니다.

 

 

환경       : Ubuntu 18.04

네트워크 : 같은 허브에 모든 PC 연결

아래 작업을 위해선 텐서플로우를 설치할 PC에 도커를 설치되어 있어야 합니다.

텐서플로우 이미지 다운


텐서플로우를 설치할 PC에 텐서플로우 이미지를 다운받습니다. 

아래의 이미지는 텐서플로우에서 제공하는 이미지 입니다.

사실 주피터 노트북이 설치 되어있는 latest-gpu-jupyter 버전도 있지만 오늘은 별도로 주피터를 설치하겠습니다.

docker pull tensorflow/tensorflow:latest-gpu

 

일단 저장소로 사용할 컨테이너를 하나 생성해 줍니다. 

-v 에 들어갈 경로는 저장소로 사용할 경로를 입력해주시면 됩니다.

# docker run \
--name storage \
-v {YOUR Directory}:/home/storage \  # Example) -v /home/storage:/home/storage \
ubuntu:18.04

 

 docker run 으로 이미지를 실행 시킵니다.

 docker run -it  \  
 --name TenJupy \  
 --volumes-from storage\  
 -p 8888:8888 --net host \  
 tensorflow/tensorflow:latest-gpu

 

이제 이미지에 주피터 노트북을 설치

 pip3 install jupyter

 

 

 

 

 

주피터 노트북 설정


주피터 설정파일 만들기

jupyter notebook --generate-config 

 

 

예전에는 복잡한 방식으로 비밀번호를 서정했는데 요즘엔 간단한 방법이 나왔습니다.

jupyter notebook password
Enter password:
Verify password:

 

아래 접은글은 예전의 주피터 노트북 비밀번호 설정 방법입니다.

더보기

주피터 노트북 비밀번호 생성

#ipython

In [1] : from IPython.lib import passwd

In [2] : passwd()
Enter password : 
Verify password : 
Out[2] : '해시값'<-- 복사하셔야합니다

 

exit으로 ipython 종료

 

아래 파일에서 주피터 노트북의 비밀번호와 저장파일 위치를 수정해줍니다.

nano root/.jupyter/jupyter_notebook_config.py

 

nano의 검색기능인 Ctrl+w 를사용하여 'NotebookApp.password' 를 찾아줍니다.

NotebookApp.password = u'해시값' 

 

아래 파일에서 주피터 노트북의 저장파일 위치를 수정해줍니다.

nano root/.jupyter/jupyter_notebook_config.py

 

이제 저장될 파일 위치를 입력해줍니다.

Ctrl+w 를 사용하여 'NotebookApp.notebook_dir' 를 검색합니다.

NotebookApp.notebook_dir = u'경로 이름'

저장 후 빠져나옴  [순서대로 Ctrl+x , y , Enter 를 입력하시면 됩니다. ]

 

이제 마지막으로 주피터 실행합니다.

jupyter notebook \
--no-browser \
--ip=0.0.0.0 \
--allow-root \
--notebook-dir='{YOUR Directory}' #Exampe) --notebook-dir='home/storage'

 

그럼 호스트 PC의 IP 주소의 8888번 포트를 통해

다른 컴퓨터에서 주피터 노트북에 접속하실 수 있습니다.

 

호스트 PC의 IP 주소는 Docker 컨테이너에서 빠져나와 아래의 명령어로 구할 수 있습니다.

hostname -I
반응형
Comments