반응형

 

이번에 컴퓨터를 맞추면서 그래픽카드 RTX 2060 super를 구매했습니다. 저만의 딥러닝 서버를 만들어 놓으면 어디서든 야외에서 노트북으로 가볍게 작업할 수 있습니다. ( 얼마나 작업을 할지 모르지만, 없는 것보단 나을 것 같습니다. )

 

천천히 따라오시면 누구나 간단히 주피터 노트북을 이용해 서버를 열 수 있습니다. 

 

~ 1. ANACONDA 설치 ~

우선, 주피터 노트북을 설치합니다. 

 

https://www.anaconda.com/products/individual

 

Anaconda | Individual Edition

Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

 

Anaconda를 설치합니다. 2021.07.14 기준 Python3.8주피터 노트북이 설치됩니다. 

( 따로 경로는 설정할 필요는 없기 때문에, 기본 경로 설정으로 설치합니다. )

 

설치를 완료하면.

 

 

위 그림처럼 설치된 파일들을 확인할 수 있습니다. 

 

우리에게 필요한 것은 Anaconda Prompt (anaconda3)Jupyter Notebook (anaconda3)입니다.

 

 

~ 2. 주피터 노트북 설정을 위한 파일 생성 ~

Anaconda Prompt를 들어가서 아래의 명령어를 입력합니다.

jupyter notebook --generate-config

위 명령어는 주피터 노트북의 설정 파일(. py)을 생성하는 의미입니다. 

Window User -> C:/Users/"사용자 이름"/.jupyter
Linux User -> /home/"사용자 이름"/.jupyter

 

저는 주피터 노트북 테마, 확장 프로그램을 건드렸기 때문에 많은 파일들이 있지만, 처음 설정하시는 분들께서는jupyter_notebook_config.py만 있습니다.

 

저처럼 코드 편집기가 없으시면 메모장으로 들어가서 작업하시면 됩니다.

 

코드를 편집하기 전에, 자신의 로컬(private) IP와 포트포워딩을 위한 포트 번호를 지정해야 합니다.

 

 

~ 3. IP 확인, 고정, 포트포워딩 ~

3.1. IP 확인, 고정 (공인 IP, 사설 IP)

우선, 간단히 IP의 종류에는 두 가지가 있습니다.

외부에서 받아 오는 공인(Public) IP (외부),  공유기에서 나눠주는 로컬(private) IP (내부)가 있습니다.

 

1. 공인 IP

공인 IP를 확인하는 방법은 여러 가지가 있습니다. 간단히 네이버에서 내 아이피 보기를 검색하시면 자신의 공인 IP를 확인할 수 있습니다.

첫번 째 방법.

 

두 번째, 192.168.0.1( 공유기 관리자 모드 )를 url을 통해 들어간다. 로그인 창이 뜨는데, 처음 자신이 설정한 아이디와 비밀번호를 입력한다. ( 잊었을 시, 리셋 )

 

저는 ipTIME을 사용합니다. ( 공유기마다 환경이 다릅니다. ) ipTIME은 외부 IP 주소라고 바로 확인할 수 있습니다.

 

공인 IP를 알아야 하는 이유는 나중에 외부에서 주피터 노트북 서버를 접근하기 위해 필요합니다. 

( 간단히, 위 공인 IP를 우리가 구매했기 때문에, 우리가 네이버에서 확인한 공인 IP는 유일무이합니다. 하지만, 사설 IP는 공유기가 랜덤 하게( 혹은 우리가 직접 ) 만들어 주기 때문에, 굉장히 많습니다. ) 

 

2. 사설 IP

쉽게 설명하자면, 192.168.0.xx의 규칙을 가지는 IP는 모두 사설 IP입니다. cmd에서 ipconfig를 입력하면 됩니다.

혹은, 공유기 관리자 모드를 들어가 확인하는 것입니다. 

 

① 보통 사설 IP는 자동으로 할당되어 IP가 박스 1의 IP주소 대여 범위 안에서 수시로 변경됩니다. 오늘은 cmd에서 확인한 것처럼 192.168.0.15이지만, 내일은 192.168.0.16으로 IP가 변경될 수 있습니다. 

 

박스 2의 사용 중인 IP 주소 정보를 보시면, 현재 와이파이 등 공유기에 물려 있는 기기들을 확인할 수 있습니다. 저는 192.168.0.15를 그대로 사용하겠습니다.

 

③  현재 사용 중인 IP를 클릭하면 자동으로 IP, mac 주소까지 입력되니 설명은 자신이 구별할 수 있게 적고 수동 등록합니다. 그러면 박스 3에서처럼 리스트에 저장되어 고정됩니다.

약간의 이해를 위해 태블릿으로 저희 집 네트워크 상태를 그려 봤습니다. 

우리들이 접근하고자 하는 서버는 50.0.x.x192.168.0.15 서버입니다. 하지만, 우리가 브라우저에 IP를 치고 들어갈 때, 저런 식으로 입력하나요? 아닙니다.

 

그래서 나온 것이 포트 번호입니다. ( 정확히는 이 때문에 나온 것은 아닙니다. IP는 네트워크(3) 계층, Port 번호는 전송(4) 계층으로 네트워크 구조를 자세히 알아야 합니다. 통신 전공자가 아니라면, 이 정도만 이해해도 충분하다고 생각이 듭니다. ) 우리가 사용하고자 하는 50.0.x.x192.168.0.15 대신 50.0.x.x:{port number}를 입력합니다. (대표적으로 포트번호 http는 80, ssh는 22, 주피터 노트북 서버의 디폴트 포트번호는 8888입니다.  주피터 노트북을 아무 설정 없이 실행하면, localhost:8888로 들어가게 됩니다. )

 

8888로 그대로 사용해도 됩니다.  우리들은 보안 전공이 아니지만, 적어도 포트번호를 다르게 써서 그나마 안전하게 접근할 수 있도록 할 예정입니다. 

3.2. 포트포워딩

 

포트포워딩은 공유기에게 문을 열어주는 역할을 합니다. 우리가 주피터 노트북 기본 포트번호가 8888인 것은 알지만, 공유기는 알지 못합니다. 이를 공유기에게 지정하는 것입니다. 만약 50.0.x.x에서 포트번호 8888을 만났다면, 여기로 가세요. 정도로 이해하시면 될 것 같습니다. 

 

우리는 기본 주피터 노트북 포트 번호를 그대로 사용하지 않고 jupyter_notebook_config.py에서 포트 번호를 바꿔줍니다. 포트번호는 0부터 65535까지 범위(16bit = 2^16)를 사용합니다. 위에서 언급했듯이, HTTP는 80, SSH는 22 등 이미 사용되고 포트 번호가 있습니다. Well Known Port Number이라고 합니다. 이 숫자들을 피해 저는 3333이라는 포트 번호를 주피터 노트북 포트 번호로 사용하겠습니다. 다른 숫자를 쓰고 싶으신 분은 위 유의사항을 피해 사용하시면 됩니다. 

저와 같은 ipTIME 공유기라면, 저를 따라 하시면 됩니다. 하나씩 설명해드리겠습니다.

규칙 이름 : 사용자 마음대로

IP 주소 : 자신이 딥러닝 서버로 만들고자 하는 로컬 IP

프로토콜 : TCP

외부포트 : 7777 ( 그림에서 설명하겠습니다. )

내부포트 : 3333 ( 주피터 노트북 서버 포트 번호) 

 

어렵게 생각하실 필요 없습니다. 

 

50.0.x.x:7777로 접근했다면...

"7777포트는 3333포트를 가리키는구나."

50.0.x.x:3333으로 길을 안내해줍니다. 3333포트는 192.168.0.15의 주피터 노트북 서버를 가리킵니다.

 

만약 나는 8888 그대로 사용하겠다 싶으시면, 외부포트 8888, 내부포트 8888 그대로 사용하시면 됩니다. 솔직히 문제되진 않습니다. 누가 개인 서버를 털겠습니까? 털어갈 것도 없으니...

 

 

~ 4. 주피터 노트북 설정 ~

 

Anaconda Prompt에서 jupyter_notebook_config.py를 위에서 생성했습니다.  경로는 아래와 같이 

Window User -> C:/Users/"사용자 이름"/.jupyter
Linux User -> /home/"사용자 이름"/.jupyter

jupyter_notebook_config.py를 메모장 혹은 코드 편집기로 열어 줍니다. 아마 알 수 없는 코드들이 작성되있습니다. 하지만 대부분이 주석이기 때문에 실제 코드는 얼마되지 않으니 걱정안하셔도 됩니다. ( 파이썬 주석은 #입니다. 주석은 설명입니다. )

 

4.1. 주피터 노트북 포트번호 설정

## The port the notebook server will listen on (env: JUPYTER_PORT).
#  Default: 8888
c.NotebookApp.port = 3333 # 자신이 원하는 포트 번호

4.2. 주피터 노트북 비밀번호 설정

## Hashed password to use for web authentication.
#  
#  To generate, type in a python/IPython shell:
#  
# from notebook.auth import passwd 
# passwd()
#
#  The string should be of the form type:salt:hashed-password.
#  Default: ''
# c.NotebookApp.password = password

아마 기본적으로 위 같이 주석처리가 되있을 것입니다. 아래와 같이 주석을 해제하고 자신이 원하는 비밀번호를 작성하시면 됩니다. jupyter_notebook_config.py이 파이썬 코드이기 때문에 괜찮습니다.

 

## Hashed password to use for web authentication.
#  
#  To generate, type in a python/IPython shell:
#  
from notebook.auth import passwd 
password = passwd('자신이 원하는 비밀번호')  # 기본으로 argon2를 사용
# password = passwd('자신이 원하는 비밀번호', 'sha256')  # option : 'sha1', 'sha256'...
#  
#  The string should be of the form type:salt:hashed-password.
#  Default: ''
c.NotebookApp.password = password

4.3. 주피터 노트북 IP 설정

## The IP address the notebook server will listen on.
#  Default: 'localhost'
c.NotebookApp.ip = '192.168.0.15'

4.4. 주피터 노트북 외부 접속 허용 설정

#  Takes precedence over allow_origin_pat.
#  Default: ''
c.NotebookApp.allow_origin = '*'

4.5. 주피터 노트북 시작시 브라우저 자동 실행 안함

## Whether to open in a browser after starting. The specific browser used is
#  platform dependent and determined by the python standard library `webbrowser`
#  module, unless it is overridden using the --browser (NotebookApp.browser)
#  configuration option.
#  Default: True
c.NotebookApp.open_browser = False

4.6. 주피터 노트북 작업 경로 설정

의외로 작업 경로 설정하는 것이 복병이었습니다. 코드 상에서 작업 경로를 제대로 입력하더라도 Home 경로로 이동해버립니다. 아래 블로그 분께서 친절하게 문제점을 알려주시니 그대로 보고 따라 하시면 됩니다.

https://wonderbout.tistory.com/50

 

주피터 노트북(Jupyter Notebook) 시작 폴더 변경

주피터 노트북을 실행하면 최초 폴더 경로가 사용자 폴더로 돼있습니다. 다른 폴더에서 작업을 하려 해도 하위 폴더 외에는 이동할 수가 없습니다. 예를 들어 제 경우 D 드라이브에 있는 특정 폴

wonderbout.tistory.com

빨간 박스 다 지우기

## The directory to use for notebooks and kernels.
#  Default: ''
c.NotebookApp.notebook_dir = '자신이 원하는 경로'

 

~ 5. 마무리 ~

네트워크 설정과 주피터 노트북 설정을 모두 마쳤습니다. 한 번 테스트하겠습니다. 

브라우저에 외부 IP:포트번호처럼 입력해서 들어가시면 됩니다. 

ex) 50.0.x.x:7777

PC에서 성공

다른 기기에서 접속해보겠습니다.

 

성공

 

 

주피터 노트북으로 외부 접속을 성공했습니다. 다음 글은 주피터 테마, 확장 프로그램, DDNS, WoL입니다.

https://coding-yoon.tistory.com/153

 

주피터 노트북 개인 딥러닝 서버 만들기 ! (2)

안녕하세요. 주피터 노트북 개인 딥러닝 서버 만들기 2편입니다. 이번 글은 주피터 노트북을 좀 더 유용하고 보기 좋게 만들기 위한 편입니다. 굳이 안 하시고 넘어가셔도 무방합니다. ~ 1. 주피

coding-yoon.tistory.com

 

728x90
반응형
반응형

안녕하세요. 딥러닝 2번째 시간입니다. 딥러닝 공부를 하는데 와... 상당히 어렵더라구요.

 

천천히 공부하고 있는데, 아무리 쉽다 쉽다 하지만 어렵습니다.

 

하지만 포기하지 않고, 조금씩 공부하다 보면 1년 뒤에는 어느정도 할 수 있지 않을까요?

 

오늘은 파이토치를 설치를 해보겠습니다.

 

https://pytorch.org/

 

PyTorch

An open source deep learning platform that provides a seamless path from research prototyping to production deployment.

pytorch.org

들어가줍니다.

 

요렇게 나오죠?? 이제 자신에게 맞는 것을 선택해줍니다. 저는 일단 GPU가 없기 때문에 CUDA는 NONE으로 하겠습니다.

만약 GPU로 하고 싶으시다면 

https://tutorials.pytorch.kr/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py

 

PyTorch가 무엇인가요? — PyTorch Tutorials 1.3.1 documentation

Note Click here to download the full example code PyTorch가 무엇인가요? Python 기반의 과학 연산 패키지로 다음과 같은 두 집단을 대상으로 합니다: NumPy를 대체하면서 GPU를 이용한 연산이 필요한 경우 최대한의 유연성과 속도를 제공하는 딥러닝 연구 플랫폼이 필요한 경우 시작하기 Tensors Tensor는 NumPy의 ndarray와 유사하며, 추가로 GPU를 사용한 연산 가속도 가능합니다. from

tutorials.pytorch.kr

여기에 들어가셔서 쭉 내려보시면 있습니다. 전 일단 GPU가 없으니 ㅜㅜ...

 

저에게 맞게 설정 했다면 Run this Command에 드래그해서 복사해줍니다. 

 

저건 pytorch 경로에 들어가 다운로드하겠다는 겁니다.

 

anaconda prompt에 들어가줍니다. 

 

복사한 경로를 그대로 붙여넣기 해줍니다. 

 

the following packages will be downloaded  

다운로드 될 품명들인가봐요.

conda-4.8.1

머 등등 

pytorch 1.4.0 이네요.

torchvision은 데이터셋이나 유용한 함수들이 다양하게 있는거라고 하네요. 옛날에는 없었는데 이제 파이토치를 설치하면서 자동적으로 깔리나봐요.

 

계속 진행할까요??

 

당연히 Y겟죠?

 

설치되고 있네요. 노트북에 와이파이라 그런지 조금 느리네요. 많이 느리네요? 

5분이 지났는데요. 생각보다 오래 걸리네요. 

 

어찌저찌 다운로드까지 완료가 되었네요. 그렇다면 이제 import 한번 시켜볼까요.

 

네 잘되었네요. 오늘은 우선 여기까지만 하고, 본격적으로 딥러닝에 대해 들어가도록 하겠습니다.

728x90
반응형
반응형

안녕하세요. 2020년 2월입니다. 

1월에 기사준비도 하고, 공부도 이것저것 한 것 같은데 나는 이것을 이루었다!

라고 자신있게 말할 만한게 없는 것 같습니다.

 

요즘 머신러닝이 너무 핫합니다.

구글, 페이스북에서 텐서플로우, 파이토치 등 무섭게 업데이트되고 있습니다.

좀 더 쉽게, 직관적으로 변하고 있습니다. 쉽게? 직관적? 코드 길이?

귀찮음을 매우 싫어하는 저에게 이건 기회가 아닐까? 생각했습니다.

 

평소에 관심이 있었던 인공지능이지만, 너무 막연한 벽 때문에 엄두조차 못내고 있었습니다.

4학년이고 맘편히 공부할 수 있는 시간도 없다는 불안함이 저를 부추겼습니다.

그래서 2월에는 인공지능에 한 번 힘을 쏟아볼 생각입니다.

 

그렇다면 머신러닝을 할 준비를 해야겠죠?

 

https://www.anaconda.com/distribution/

 

Anaconda | The World's Most Popular Data Science Platform

Anaconda is the standard platform for Python data science, leading in open source innovation for machine learning. Develop, manage, collaborate, and govern at scale with our enterprise platform.

www.anaconda.com

올려둔 사이트에 들어가서 3.7을 다운로드 해줍니다.

next 버튼을 누르다보면 아래의 문장이 나옵니다.

 

Add Anaconda to the system PATH environment variable 

체크해줍니다. 안해줘도 상관없습니다만, 그냥 해줍시다.

 

저는 아나콘다를 설치, 주피터 노트북에서 파이토치를 돌릴 생각입니다. 

페이스북의 파이토치와 구글의 텐서플로우에 대한 비교 글을 다음 글에서 보기로 하고, 어서 아나콘다를 준비합시다.

 

원래부터 파이썬을 썼을 때, 주피터 노트북을 애용했습니다. 

그 이유는 너무 귀찮기 때문입니다. visual code, 파이참은 설정하는게 어후... 귀찮습니다. 그냥 맘편히 아나콘다를 

사용하는게 좋습니다. 

만약 저처럼 귀찮음을 가지신 분이라면 아나콘다를 굉장히 추천 추천합니다. 

 

아나콘다는 웹서버에 올린다는 특징이 있어, 인터넷이 안되면 아마 안될겁니다. ㅜ 

(저희 랩실은 가끔 인터넷이 느려져서ㅠ)

 

아나콘다의 좋은점!

1. 아나콘다를 깔면 파이썬 등 라이브러리(numpy, matplotlib) 등이 자동 적으로 깔립니다. 와우!

2. 그리고 부분실행이 가능해서 중간 점검이 가능하다고 해야하나?

제가 친구랑 파이썬 공부한다고 만든 롤전적 프로그램 기회가 되면 보여드리겠습니다.

pandas로 데이터를 처리하고, matplotlib로 그래프를 그릴 때, 그 줄에 해당한 부분만 실행이 가능하니 

바로바로 확인이 가능했어서 굉장히 편했습니다.

 

 

 

anaconda powershell, anaconda prompt, jupyter notebook 깔린게 보이죠?

 

바탕화면에 새 파일 하나 만들어줍시다.

 

어디에 만들든 상관없습니다. 

 

요렇게 들어가 줍시다. 

 

 

복사 ctrl+c 아시죠?? 해줍니다.

 

이제 anaconda prompt에 들어가줍니다. 

 

cmd 창처럼 검은색 창이 떳죠?? 

 

cd + 자신이 복사한 경로 이렇게 써줍시다.

 

무슨 뜻이냐면, change directory 라는 뜻으로 경로를 바꿔준다는 뜻입니다. 어디로? 자기가 복사한 경로에.

 

그래서 아까 Add Anaconda to the system PATH environment variable 해도 되고 안해도 된다는게 이것 때문이였습니다.

 

엔터 눌러줍시다.

 

이제 주피터 노트북을 실행합시다.

 

jupyter notebook 이렇게 적어줍시다.

 

실행!

 

짜잔! 

 

그럼 한번 되는지 확인해볼까요?

 

New 버튼 보이시죠? 

python 3를 누르고 생성해줍니다. 

 

실행은 RUN!!!

잘되네용??

 

저희가 설정해둔 경로에 파일은 방금 저희가 만든 untitled.ipynb 파일이 있네요!

 

다음시간에는 파이토치를 깔고 어떻게 공부를 할건지 방향을 말하도록 하겠습니다. 

저 또한 딥러닝, 인공지능 정말 아예 처음입니다. 

그렇다고 영어를 잘하느냐. 그것도 아닙니다. 그냥 깡으로 레퍼런스를 찾아보고 구글링해서 공부를 할 생각입니다. 

파이팅@!

728x90
반응형

+ Recent posts