티스토리 뷰
1. Introduction to Deep Learning / L4. Jupyter Notebooks - What are Jupyter notebooks?
chrisysl 2018. 6. 18. 17:20What are Jupyter notebooks?
- Jupyter(주피터)는 텍스트, 수학 방정식, 코드 등의 시각화를 모두 가능하게 해줌
- 공유 가능한 문서 형태로 작업이 가능한 웹 어플리케이션.
- 예를 들어, LIGO 실험(https://www.ligo.caltech.edu/news/ligo20160211)에서 감지 된,
- 충돌하는 두 개의 블랙홀에서의 중력파를 감지하는 코드를 직접 실행시켜 분석할 수 있다.
- 데이터를 다운로드하고, 노트북에서 코드를 실행하기만 하면 실제로 중력파를 개인이 감지할 수 있다.
- https://losc.ligo.org/s/events/GW150914/GW150914_tutorial.html
- 주피터 노트북은 데이터 정리 및 탐색, 시각화, 머신러닝 및 빅데이터 분석에 사용된다.
- https://github.com/mcleonard/blog_posts/blob/master/body_fat_percentage.ipynb
- 위의 블로그를 들어가보면, 주피터 노트북으로 코드는 물론, 텍스트, 도표, 수학적 공식 등의 표현이 가능함을 확인할 수 있다.
- 주피터 노트북은 GitHub에서 자동으로 렌더링되게도 가능하다.
- 또한 http://nbviewer.jupyter.org/에서 GitHub repo 또는 다른 곳에 저장된 주피터 노트북에서 노트를 렌더링하는것이 가능하다.
How notebooks work
- Jupyter 노트북은 Fernando Perez가 시작한 IPython 프로젝트에서 개발됨.
- IPython은 일반적인 파이썬 쉘과 비슷하지만 구문 강조 및 자동 코드 완성과 같은 기능을 가진 대화식 쉘.
- 원래 주피터 노트북은 웹 어플리케이션 (브라우저에 표시되는 노트)에서
- IPython 커널 (백그라운드에서 실행되는 IPython 응용 프로그램)로 메시지를 보내는 방식으로 작동하였음.
- 커널은 코드를 실행 한 다음 다시 주피터 노트북으로 보낸다.
# 주피터 노트북 작동 원리 / 출처 : Jupyter documentation
- 주피터 노트북 서버를 중심으로 작동한다.
- 브라우저(엣지, 크롬 등..)를 통해 주피터 서버에 접속하게 되면, 주피터 노트북이 렌더링되는 개념
- 웹에 작성한 코드는 서버를 통해 주피터 노트북 커널로 보내진다.
- 커널은 코드를 실행하고 서버로 다시 재전송한다. 그리고 그 코드에 상응하는 output이 브라우저로 렌더링된다.
- 주피터 노트북상에서 작성한 파일을 저장할 경우, JSON 파일과 .ipynb확장자의 파일을 통해 서버에 기록된다.
- 이 아키텍쳐의 장점은 커널이 파이썬을 돌릴 필요가 없다는 것이다.
- 주피터 노트북 서버와 커널이 분리되어있어, 어떤 언어로건 코드를 전송할 수 있다.
- 예를들어 R언어로 작성된 코드는 R커널로 전송된다.
- 따라서 주피터 노트북은 언어에 구애를 받지 않는다고 볼 수 있다.
- 지원되는 커널 목록 : https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
- 또한 인터넷을 통해 액세스 하기때문에, 서버가 실행되는 한 어디서든 접근이 가능하다.
Installing Jupyter Notebook
- Jupyter를 설치하는 가장 쉬운방법은 Anaconda이다.
- 주피터 노트북은 자동으로 Anaconda 배포판과 함께 설치된다.
- 그러므로 디폴트 환경에서 주피터 노트북을 사용할 수 있다.
#> conda install jupyter notebook 명령으로 주피터를 설치할 수 있다.
#> pip install jupyter notebook 명령으로 pip로도 설치가 가능하다.