Jupyter Notebook
概要
Jupyter Notebook はライブコード、方程式、視覚化、テキストを含むドキュメントを作成して共有できるオープンソースの Web アプリケーション。データのクリーニングと変換、数値シミュレーション、統計モデリング、データの視覚化、機械学習などを目的として使用される。
ノートブックはテキスト (Markdown) とコードの断片、及びグラフを含む実行結果をまとめたドキュメンテーションを行うことができる。ノートブックごとにカーネルと呼ばれる言語実行環境 (REPL や VM) が起動する。異なる言語の共通インターフェースとして利用できる
Jupyter Notebook は https://try.jupyter.org/ で試すことができる。
Table of Contents
- 概要
- コンテナでの実行
- セットアップ [under construction]
- Julia カーネルの追加
- PyPlot を使用する
- TIPS
- Docker 起動時のトークン表示
- Julia カーネルの追加
- 参考文献
コンテナでの実行
Docker コンテナを使用するとどのような環境でも Jupyter Notebook を利用できて便利である。ここでは R, Julia, SciPy を含んでいる jupyter/datascience-notebook
イメージを使用する。TensorFlow や Spark 版の Docker イメージを使用したい場合は Selecting an Image を参照。
Linux / Mac OS
Linux / Mac OS でカレントディレクトリをマウントして起動する場合は以下の通り。
docker run --rm -p 8888:8888 -v "$PWD:/home/jovyan/work" --name jupyter jupyter/datascience-notebook
Windows 10 Pro
Windows 10 で Docker Desktop for Windows を起動する (Windows 10 Home では Docker Toolbox を使用する必要がある)。
最初に Docker の設定でマウントするディレクトリのドライブに共有の許可が与えられているかを確認しておく。許可が与えられていない場合はコンテナ側からはディレクトリのみファイルが存在しないように見える。
Windows for Docker はマウントするローカルディレクトリを C:/Users/... のように書き換えなければならない。以下は環境変数の展開部分で \
の置換を行っている。
docker run --rm -p 8888:8888 -v "%CD:\=/%:/home/jovyan/work" --name jupyter jupyter/datascience-notebook
C:\Users\torao\jupyter>docker run --rm -p 8888:8888 -v "%CD:\=/%:/home/jovyan/work" --name jupyter jupyter/datascience-notebook
Unable to find image 'jupyter/datascience-notebook:latest' locally latest: Pulling from jupyter/datascience-notebook b237fe92c417: Pull complete 8cde17d6e2de: Pull complete 0035347ec526: Pull complete ...
正しく起動すると http://localhost:8888/?... と表示されるが Docker でポート変更を行っているため実際には 10000 ポートにアクセスする。
Container must be run with group root to update passwd file
Executing the command: jupyter notebook
...
[I 09:51:48.824 NotebookApp] 0 active kernels
[I 09:51:48.824 NotebookApp] The Jupyter Notebook is running at:
[I 09:51:48.824 NotebookApp] http://[all ip addresses on your system]:8888/?token=a63c2b96c5bc908a74b693718f35da4742b1e79f1ae4fee4
[I 09:51:48.825 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 09:51:48.825 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=a63c2b96c5bc908a74b693718f35da4742b1e79f1ae4fee4
Windows で docker-machine + VirtualBox を使っている場合は localhost 部分も仮想 OS の IP アドレスに変えなければならなない。
セットアップ
$ pip install jupyter
Julia カーネルの追加
Jupyter Notebook に Julia カーネルを追加するには Julia の REPL を起動して IJulia
パッケージを追加する。
$ julia
_
_ _ _(_)_ | A fresh approach to technical computing
(_) | (_) (_) | Documentation: https://docs.julialang.org
_ _ _| |_ __ _ | Type "?help" for help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 0.6.2 (2017-12-13 18:08 UTC)
_/ |\__'_|_|_|\__'_| | Official http://julialang.org/ release
|__/ | x86_64-pc-linux-gnu
julia> Pkg.add("IJulia")
INFO: Initializing package repository /home/torao/.julia/v0.6
INFO: Cloning METADATA from https://github.com/JuliaLang/METADATA.jl
INFO: Cloning cache of Nullables from https://github.com/JuliaArchive/Nullables.jl.git
INFO: Installing BinDeps v0.8.2
INFO: Installing Compat v0.42.0
INFO: Installing Conda v0.7.1
INFO: Installing IJulia v1.6.2
...
julia> Pkg.build("IJulia")
INFO: Building Conda
INFO: Building MbedTLS
Using system libraries...
INFO: Building ZMQ
INFO: Building IJulia
INFO: Found Jupyter version 4.4.0: jupyter
INFO: Installing Julia kernelspec julia-0.6
[InstallKernelSpec] Removing existing kernelspec in /home/torao/.local/share/jupyter/kernels/julia-0.6
[InstallKernelSpec] Installed kernelspec julia-0.6 in /home/torao/.local/share/jupyter/kernels/julia-0.6
julia> exit()
$ jupyter kernelspec list
Available kernels:
julia-0.6 /home/torao/.local/share/jupyter/kernels/julia-0.6
python2 /home/torao/.local/share/jupyter/kernels/python2
python3 /home/torao/.local/share/jupyter/kernels/python3
Jupyter Notebook を起動すればカーネルに Julia が追加されている。
PyPlot を使用する
Jupyter Notebook 上で Julia から利用できるグラフ描画パッケージはいくつかあるが一通り機能が揃っているのは PyPlot
である (ただし Python のネイティブライブラリを利用するため Windows ではエラーが起きることがある)。
using PyPlot
x = linspace(0, 2*pi, 1000)
y = sin.(x)
plot(x, y, color="blue", linewidth=.5, linestyle="--")
title("sine curve")
TIPS
Docker 起動時のトークン表示
$ sudo docker exec -it jupyter jupyter notebook list Currently running servers: http://localhost:8888/?token=... :: /notebooks