Casual Developers Note

エンジニアやデザイナー向けの技術情報・英語学習情報・海外留学情報・海外旅行情報を提供中。世界を旅して人生を楽しもう。

  • ホーム
  • 技術 Tips & Tutorials
  • 技術塾
  • ライフハック
  • 海外留学
  • 英語学習
  • コラム
  • お問い合わせ
現在の場所:ホーム / アーカイブjupyter

2018年6月25日 By KD コメントを書く

Jupyter Notebookで「The kernel appears to have died. It will restart automatically.」というエラーが出た場合の原因と対処法

Jupyter Notebookで「The kernel appears to have died. It will restart automatically.」というエラーが出た場合の原因と対処法

Jupyter Notebookはディープラーニングなどのデータサイエンスのプラグラムを検証する素晴らしいツールです。しかし、実行時にたまに「The kernel appears to have died. It will restart automatically.」というエラーが出ます。今回はその原因と対処法を紹介します。

はじめに

Tensorflowの初歩的なプログラミングとしてDeep MNIST for Expertsというものがあります。Tensorflowでディープラーニングを始める人はまずこのプログラムを書くのが慣例になっていますが、Jupyter Notebookで実行した場合、私のPCでは以下のエラーが出てしまいます。

Jupyter notebook error

今回はこの「The kernel appears to have died. It will restart automatically.」というエラーの原因と対処法を紹介します。

原因

エラーの出た環境

エラーは環境に依存します。今回使ったPCのスペックは以下です。

Spec

このPC上で、以前紹介した「データサイエンスのためのAnaconda環境構築とTensorflowのインストール方法(Docker編)」を使って、Jupyter Notebookをコンテナとして実行しています。メモリは16Gなので、Dockerはサクサク動いています。

MNISTのソースコード

今回実行したMNISTのソースコードは以下です。

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data", one_hot=True)

import tensorflow as tf
sess = tf.InteractiveSession()

x = tf.placeholder(tf.float32, shape=[None, 784])
y_ = tf.placeholder(tf.float32, shape=[None, 10])

W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))

def weight_variable(shape):
    initial = tf.truncated_normal(shape, stddev=0.1)
    return tf.Variable(initial)

def bias_variable(shape):
    initial = tf.constant(0.1, shape=shape)
    return tf.Variable(initial)

def conv2d(x, W):
    return tf.nn.conv2d(x, W, strides=[1,1,1,1], padding='SAME')

def max_pool_2x2(x):
    return tf.nn.max_pool(x, ksize=[1,2,2,1], strides=[1,2,2,1], padding='SAME')

W_conv1 = weight_variable([5,5,1,32])
b_conv1 = bias_variable([32])
x_image = tf.reshape(x, [-1,28,28,1])
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)

W_conv2 = weight_variable([5,5,32,64])
b_conv2 = bias_variable([64])
h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)
h_pool2= max_pool_2x2(h_conv2)

W_fc1 = weight_variable([7*7*64, 1024])
b_fc1 = bias_variable([1024])

h_pool2_flat = tf.reshape(h_pool2, [-1,7*7*64])
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)

keep_prob = tf.placeholder(tf.float32)
h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)

W_fc2 = weight_variable([1024, 10])
b_fc2 = bias_variable([10])

y_conv = tf.matmul(h_fc1_drop, W_fc2) + b_fc2

cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels=y_, logits=y_conv))
train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
correct_prediction = tf.equal(tf.argmax(y_conv,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
sess.run(tf.global_variables_initializer())
for i in range(20000):
    batch = mnist.train.next_batch(50)
    if i%100 == 0:
        train_accuracy = accuracy.eval(feed_dict={x: batch[0], y_: batch[1], keep_prob: 1.0})
        print("step %d, training accuracy %g"%(i, train_accuracy))
        train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})

print("test accuracy %g"%accuracy.eval(feed_dict={x: mnist.test.images, y_:mnist.test.labels, keep_prob: 1.0}))

Tensorflowの公式サイトの内容をTensorflowのバージョン1.8で動くように少し修正しただけのものです。

原因の調査

それでは、原因を調査しましょう。起動しているコンテナのリソース状況を確認するには「docker stats」コマンドを使えば良いので、これで調べてみましょう。

Jupyter Notebookをコンテナとして起動し、別のターミナルで「docker stats」を実行してみます。コンテナはもちろん一つだけしか起動していません。

Docker stats 1

「MEM USAGE」はそのコンテナが現在使用しているメモリ量、「LIMIT」はそのコンテナが使用できる最大のメモリ量を示しています。このコンテナは約2Gのメモリを使用できることが分かります。

次に、MNISTのプログラムをJupyter Notebook上で実行してみましょう。リソース状況はどうなるでしょうか?

Docker stats 2

Docker stats 3

「MEN USAGE」の数字はプログラムの最後の方で急激に上昇し、表示ができなくなってしまいました。そして、Jupyter Notebookの方は今回のエラーを表示して、実行が停止されてしまっています。

結論

これから分かることはメモリのオーバーフローです。コンテナが扱えるメモリの上限2Gを超えてしまったためにJupyter Notebookの処理が止まってしまったのです。

対処法

原因がわかったところで、対処法は以下の2つです。

  1. Dockerコンテナのメモリを増やす
  2. Jupyter Notebookを使わずにPythonファイルにして実行する(Jupyter Notebookのオーバーヘッドを回避する)

今回は1つ目の方法で解決してみましょう。

Dockerコンテナのメモリを増やす対処法

原因の結論を読んで疑問に思った人もいたかもしれません。メモリ16GのPCなのにDockerのコンテナのメモリ上限は2Gしかないのはなぜだろうか?

その答えは、実はDockerエンジン上でメモリ制限をしているからです。Dockerの「Preferences -> Advanced」を見てみましょう。デフォルトでは2Gに制限されています。

Docker memory default

今回はPCのメモリは16Gあるので、Dockerコンテナで使用できるメモリ上限は16Gまで上げられます。ただ、最大まで上げてしまうと他のアプリケーションが停止してしまう恐れがあるので、今回のプログラムが実行できる上限まで上げることにしましょう。

Docker memory up to 7G

コンテナの上限を7Gまで上げて、「Apply & Restart」します。

そして、Dockerコンテナのリソースを確認しつつ、MNISTのプログラムをJupyter Notebook上で再度実行してみましょう。

Docker stats last

メモリ使用率(MEM %)は約88%まで上昇していますが、使用したメモリは約6Gまでで止まり(上限は7Gなのでそれより小さい)、プログラムは正常に終了しました。

これで今回のエラーは解決できました。

最後に

いかがでしたか?Jupyter NotebookでTensorflowを使う場合にたまに遭遇するエラーなので紹介しました。ディープラーニングを本気でやるならそれなりのスペックのPCが必要になりそうですね。それでは。

カテゴリ : 技術 Tips & Tutorials タグ : docker, jupyter

2018年5月14日 By KD コメントを書く

データサイエンスのためのAnaconda環境構築とTensorflowのインストール方法(Docker編)

データサイエンスのためのAnaconda環境構築とTensorflowのインストール方法(Docker編)

データサイエンスのディープラーニング(深層学習)する上でAnacondaとTensorflowはもはや必須の知識となりました。今回はデータサイエンスの初学者向けにDockerを使ってAnaconda環境構築とTensorflowのインストール方法を紹介します。

はじめに

以前の記事で、Mac上でpyenvを使ってAnaconda環境構築を行う方法を紹介しました。この方法は環境をスクラッチで構築するという観点では適切ですが、どうしても環境差分の影響を受けやすく、Anacondaのバージョンによってはうまく動作しない場合がありました。そこで、今回はそんな環境差分の影響を全く受けない方法として、Dockerを使ってコンテナとしてAnaconda環境を構築し、そこにTensorflowをインストールする方法を紹介します。

データサイエンスを始めたいのに環境が作れずに挫折した人は、今回の方法で問題なく環境構築を完了できると思います。

Dockerとは?

エンジニアであればDockerを知らない人はいないと思いますが、データサイエンスの初学者はエンジニアではない可能性もあるので簡単に説明しておきます。

Dockerとは、コンテナという単位でアプリケーションの実行環境を分離する技術で、単一のOS上に異なるOSやその上にアプリケーションがインストールされた環境を複数のコンテナとして実行させることができます。これは、従来の仮想化技術の仮想マシンと類似していますが、仮想マシンがOSをエミュレートして実行しているのに対し、Dockerのコンテナは名前空間などを利用することでホストOSからしたら単なるプロセスにしか見えない仕組みになっています。そのため、Dockerの方が仮想化技術よりもオーバーヘッドが少なく、複数の実行環境がコンテナとして軽快に動作します。その上、コンテナは起動や削除が簡単なため、今回のように開発環境構築や実験的にアプリケーションを試す場合などには最適と言えます。

さらに、DockerのコンテナはDockerイメージという形で雛形がDockerHub上に公開されており、複数のベンダーやコミュニティーが公式のDockerイメージを配布しています。今回は、Anacondaの公式のDockerイメージを利用することで、「確実に動く」環境を簡単に手に入れることにしましょう。

Dockerをインストールする

今回はMac上にHomebrewを使ってDockerをインストールします。

$ brew cask install docker
...
🍺  docker was successfully installed!
$ docker --version
Docker version 18.03.1-ce, build 9ee9f40

Dockerのインストール方法はOSによって異なるため、WindowsやLinuxの人は公式のインストール手順を見てやってみて下さい。

Anacondaの環境構築

Anacondaはもちろん公式のイメージを使います。「docker pull」でイメージを取得して、起動してみましょう。

$ docker pull continuumio/anaconda3
$ docker run --rm continuumio/anaconda3 python --version
Python 3.6.4 :: Anaconda, Inc.
$ docker run --rm continuumio/anaconda3 jupyter --version
4.4.0
$ docker run --rm continuumio/anaconda3 jupyter notebook --version
5.4.0

「docker run –rm」でコンテナを起動した場合、コンテナは起動し、コマンドが実行され、その後コンテナは綺麗に削除されます。

これでDockerでAnaconda環境がいつでもコンテナとして起動できることが確認できました。Dockerさえ使えれば複雑な環境構築は一切不要です。

Jupyter Notebookを起動する

それでは、Anacondaの公式イメージを使って、今度はJupyter Notebookを起動してみましょう。今回用に「project」フォルダを作り、「data/notebooks」フォルダに作成したノートブックを保存するように指定して、コンテナを起動しましょう。

$ mkdir project
$ cd project
$ mkdir -p data/notebooks
$ docker run -it -p 8888:8888 -v $(pwd)/data:/data --rm continuumio/anaconda3 bash -c 'jupyter notebook --notebook-dir=/data/notebooks --ip=0.0.0.0 --port=8888 --no-browser --allow-root'
[I 08:08:18.939 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[I 08:08:19.439 NotebookApp] JupyterLab beta preview extension loaded from /opt/conda/lib/python3.6/site-packages/jupyterlab
[I 08:08:19.439 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 08:08:19.448 NotebookApp] Serving notebooks from local directory: /data/notebooks
[I 08:08:19.448 NotebookApp] 0 active kernels
[I 08:08:19.448 NotebookApp] The Jupyter Notebook is running at:
[I 08:08:19.449 NotebookApp] http://0.0.0.0:8888/?token=eb25640714a747414d4f4ecb835ed87aaf059a9cb39e691d
[I 08:08:19.450 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 08:08:19.451 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://0.0.0.0:8888/?token=eb25640714a747414d4f4ecb835ed87aaf059a9cb39e691d

ブラウザで「http://0.0.0.0:8888/?token=eb25640714a747414d4f4ecb835ed87aaf059a9cb39e691d」を開いてみましょう。

Jupyter 1

Jupyter Notebookが起動していることが確認できました。

続いて、簡単なノートブックを作成してみましょう。

Jupyter 2

問題なくノートブックは作成されました。

Jupyter 3

この状態で、Control+CでJupyter Notebookを終了してみましょう。

Shutdown this notebook server (y/[n])? y
[C 08:14:41.617 NotebookApp] Shutdown confirmed
[I 08:14:41.618 NotebookApp] Shutting down 1 kernel
[I 08:14:41.923 NotebookApp] Kernel shutdown: 6040ea6e-eb47-4115-bdc9-5e124b075e3c
$ tree data
data
└── notebooks
    └── hello-jupyter.ipynb

1 directory, 1 file

Jupyter Notebookを終了しても、作成した「hello-jupyter.ipynb」が想定したフォルダ内に保存されていることが確認できました。

これでDockerでJupyter Notebookを扱うことができました。

Tensorflowをインストールする

最後にAnacondaにTensorflowをインストールしましょう。今回はDockerfileでインストールしたイメージをビルドすることにします。

$ pwd
/Users/you/project
$ touch Dockerfile

Dockerfileの中身は以下になります。

FROM continuumio/anaconda3:5.1.0

RUN conda update -n base conda \
  && conda create -n tensorflow-env python=3.6 \
  && . activate tensorflow-env \
  && conda install tensorflow

VOLUME /data

EXPOSE 8888

CMD jupyter notebook --notebook-dir=/data/notebooks --ip=0.0.0.0 --port=8888 --no-browser --allow-root

基本的には先程Jupyter Notebookを起動した時のコマンドをDockerfileにしただけですが、追加でcondaを使って仮想環境の構築とTensorflowのインストールを行っています。

それではイメージをビルドして、コンテナを起動しましょう。

$ docker build -t tensorflow-project .
...
Successfully built 85dd29cb0c75
Successfully tagged tensorflow-project:latest
$ docker run -it -p 8888:8888 -v $(pwd)/data:/data --rm tensorflow-project
[I 08:39:21.954 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[I 08:39:22.434 NotebookApp] JupyterLab beta preview extension loaded from /opt/conda/lib/python3.6/site-packages/jupyterlab
[I 08:39:22.435 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 08:39:22.444 NotebookApp] Serving notebooks from local directory: /data/notebooks
[I 08:39:22.445 NotebookApp] 0 active kernels
[I 08:39:22.445 NotebookApp] The Jupyter Notebook is running at:
[I 08:39:22.446 NotebookApp] http://0.0.0.0:8888/?token=4d1681702c20e5bb6636a1061a73b044a51b5cf10b4f0d06
[I 08:39:22.446 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 08:39:22.448 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://0.0.0.0:8888/?token=4d1681702c20e5bb6636a1061a73b044a51b5cf10b4f0d06

Jupyter Notebookが起動したので、ブラウザで「http://0.0.0.0:8888/?token=4d1681702c20e5bb6636a1061a73b044a51b5cf10b4f0d06」を開いてみましょう。

Jupyter tensorflow 1

問題なくJupyter Notebookが起動し、先程作成した「hello-jupyter.ipynb」も表示されました。

次に、Tensorflowを使ったテストコードを書いてみましょう。

Jupyter tensorflow 2

正しく実行できているので、Tensorflowが正しくインストールされていることを確認できました。

Jupyter tensorflow 3

このファイルも保存し、Control+CでJupyter Notebookを終了しましょう。

Shutdown this notebook server (y/[n])? y
[C 08:46:11.193 NotebookApp] Shutdown confirmed
[I 08:46:11.194 NotebookApp] Shutting down 1 kernel
[I 08:46:11.703 NotebookApp] Kernel shutdown: a32f36e5-2803-4cb8-b9f1-13ff6f617f17
$ tree data
data
└── notebooks
    ├── hello-jupyter.ipynb
    └── hello-tensorflow.ipynb

1 directory, 2 files

今作った「hello-tensorflow.ipynb」も保存されていることが確認できました。

以上で、DockerでAnaconda環境構築と、Tensorflowのインストールができました。Anacondaのバージョンが上がったとしても、DockerfileのAnacondaの公式イメージのバージョンを上げるだけで対応でき、とても便利です。

おまけ(追記)

MinicondaでTensorflowやKerasが入った軽量なDockerイメージを作る方法

AnacondaをDockerコンテナとして起動させるのはローカルにAnacondaをインストールするよりはるかに環境構築が容易です。ただし、一点問題があります。それはAnacondaをベースにしたDockerイメージは大変大きくなり、ディスク容量を圧迫する点です。この問題を軽減するメジャーな方法として、Minicondaをベースにする方法があります。

Minicondaの公式イメージをベースとした場合のDockerfileの例は以下です。(condaの仮想環境を使わないバージョンです。Pythonの開発では一般的にプロジェクト単位に仮想環境を構築しますが、Dockerの場合はプロジェクト単位にDockerイメージを作るので仮想環境は無くても問題ありません。)

FROM continuumio/miniconda3

RUN conda update conda \
  && conda update --all \
  && conda install jupyter numpy numexpr pandas matplotlib scipy statsmodels scikit-learn tensorflow keras \ # 好きなパッケージを入れる
  && conda clean --all

VOLUME /data

EXPOSE 8888

CMD jupyter notebook --notebook-dir=/data/notebooks --ip=0.0.0.0 --port=8888 --no-browser --allow-root

MinicondaはAnacondaと違い、最小限のパッケージしか入っていません。なので、自分の用途に応じてcondaで必要なパッケージをインストールする必要があります。

DockerHubに自作のDockerイメージをPushする方法

ベースとなるイメージをAnacondaからMinicondaに変えると、それだけでDockerイメージのサイズは半分以下になります。ただ、ローカルでDockerをビルドすると、どうしてもビルドする時間がかかります。それを回避するためのメジャーな解決策は、DockerHubに自作のイメージをPushして使い回す方法です。

DockerHubにアカウントがある前提として、例えば、アカウント名「your-account」、自作のイメージ名「your-tensorflow-image」とした場合は以下のようにコマンドラインから実行するだけでDockerHubにPushできます。

$ docker image build -t your-account/your-tensorflow-image -f Dockerfile .
$ docker login
$ docker image push your-account/your-tensorflow-image

利用する場合は、以下のようにすればOKです。

$ docker container run -it -p 8888:8888 -v $(pwd)/data:/data your-account/your-tensorflow-image

こうしておけばすぐにほしい環境が手に入ります。

さらに、Dockerイメージをローカルで作るのさえめんどうな場合は、GitHubにDockerfileをあげておき、DockerHubのAutomated Build(やり方はこちら)や、Travis CIやCircle CIなどのCIサービスを使って自動的にビルドしてDockerHubにイメージがPushされるようにしておくと便利です。

よくあるDockerイメージのビルドが失敗する場合の解決策

Tensorflowなどのイメージはサイズが大きいため、Dockerイメージのビルドをすると以下のようなエラーが出て失敗する場合があります。

  • OSError(28, ‘No space left on device’)
  • no space left on device

これらの原因はディスク容量が不足していることです。Dockerイメージを大量に作って放置している場合に陥る事象なので、以下のように不要なコンテナ、イメージ、ボリュームを削除するコマンドを実行するとハードディスクに空きができてエラーが無くなります。(削除する前にどの程度Docker関連のファイルが容量を使っているか知りたければ「docker system df」を実行してください)

$ docker system prune

それでもダメな場合は、「docker images」で大きいサイズのイメージを探し、不要であるか確認してから「docker rmi」で削除していくのが無難ですが、使っていないコンテナ、イメージ、ボリュームを全て削除してよければ以下のコマンドを実行してください。

$ docker system prune -a

これでもダメな場合は、どうにかしてハードディスクの容量を増やす他ありません。場合によっては、よりハイスペックなPCを購入した方が良いかもしれません。あるいは、ローカルで実行することを諦めてAzureやAWSなどのクラウド環境を利用すればハイスペックな環境を手に入れることは容易です。

最後に

いかがでしたか?これでディープラーニングを始める環境は整ったことでしょう。スクラッチで環境を構築するとどうしても環境差分で苦しむ事になるので、Dockerを使ったお手軽な方法を採用するのは賢明だと思います。これで、どんどんメインのディープラーニングに専念できますね。それでは。

環境

  • PC : macOS High Serra 10.13.4
  • Docker : Docker version 18.03.1-ce, build 9ee9f40
  • AnacondaのDockerイメージ : anaconda3:5.1.0

カテゴリ : 技術 Tips & Tutorials タグ : anaconda, docker, jupyter, keras, miniconda, tensorflow

2018年1月3日 By KD コメントを書く

データサイエンスのためのAnaconda環境構築とJupyter Notebook入門

データサイエンスのためのAnaconda環境構築とJupyter Notebook入門

少し前からディープラーニングやAIなどのデータサイエンスが流行っています。一説によると海外の企業は優秀なデータサイエンティストを探していて、データサイエンティストの収入は最低でも1000万円は超えるらしいですね。これは海外で働いているシニアエンジニアと同じくらいの給料で、高騰していると言えます。理由は簡単で人が足りないからです。貴重なものには価値がつく。それだけです。今回はデータサイエンスを始めるための準備作業であるAnacondaとJupyter Notebookの使い方を紹介します。

Anacondaとは?

Anacondaとは、プログラミングに慣れていないデータサイエンスのためのPython開発環境です。簡単に言うとデータサイエンス向けの仮想環境やパッケージのインストールが簡単にできるよ、というものです。GUIとCUIの両方で提供されています。パッケージ内にはCondaというpipに代わるパッケージ管理ツールと、Jupyter Notebookが標準で入っています。Condaはパッケージをビルド済の状態でインストールできるので、各々の環境差分によるビルド失敗を防げます。個人的にはpipより優れていると思いますので、ついでに使ってみると良いと思いますよ。

https://anaconda.org/

Jupyter Notebookとは?

Jupyter Notebookは、データ分析などの作業をする時に、ソースコードを書いて実行結果を記録しながらノートブック形式でまとめるためのツールです。

http://jupyter.org/

Anacondaの環境構築

今回はインストーラをダウンロードしてきてインストールする方法はとりません。それは不便だからです。コーディング以外の作業はコマンドラインで完結すべきです。もしどうしてもインストーラが必要な方は上のAnacondaのサイトからダウンロードできます。

pyenvのインストール

pyenvとは、Pythonのバージョンを管理するためのツールです。Python2.7とPython3.5を切り替えて使うことができます。今回の場合はさらにanacondaを切り替えて使います。

pyenvのインストールに関しては以前に書いた「MacでRubyとPythonとJavaとNodeとPerlの複数バージョンを管理する方法」の記事を参考にしてください。

余談ですが、python以外の言語も同様の方法で管理したい人はanyenvを試してみると良いでしょう。

Anacondaのインストール

Pyenvからanacondaのバージョンを探してインストールします。コマンドラインから簡単にできます。

$ pyenv install -l
$ pyenv install anaconda3-4.3.0
$ mkdir my-project
$ cd my-project
$ pyenv local anaconda3-4.3.0
$ python --version
Python 3.6.0 :: Anaconda 4.3.0 (x86_64)

もしanaconda以外のPythonをあまり使わない場合は、pyenv globalを使用して下さい。

また、MinicondaというAnacondaから機能を削ぎ落としたバージョンもありますので、気になる方は調べてみて下さい。ただし、pyenvでインストールすると一部のコマンドが競合する可能性があるのでパスに気をつけてください。

https://conda.io/miniconda.html

Jupyter Notebookの使い方

起動と停止

Anacondaに入っているJupyter Notebookのバージョンを確認しましょう。

$ jupyter --version
4.2.1
$ jupyter notebook --version
4.3.1

大丈夫そうですね。では、さっそく起動してみましょう。

$ jupyter notebook
[I 16:28:09.211 NotebookApp] Serving notebooks from local directory: /Users/user/my-project
[I 16:28:09.211 NotebookApp] 0 active kernels
[I 16:28:09.211 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/?token=c7884031a95bc68086b28eb122a340bf73d7b4bf12d44d6b
[I 16:28:09.211 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 16:28:09.216 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=c7884031a95bc68086b28eb122a340bf73d7b4bf12d44d6b
[I 16:28:09.846 NotebookApp] Accepting one-time-token-authenticated connection from ::1

では「http://localhost:8888/tree」にアクセスしてみましょう。

スクリーンショット 2017 12 31 16 32 18

停止する時は普通にControl+Cでできます。

Shutdown this notebook server (y/[n])? y
[C 16:30:02.625 NotebookApp] Shutdown confirmed
[I 16:30:02.626 NotebookApp] Shutting down kernels

新しいノートブックを作ってみる

では新しノートブックを作ってみましょう。

Jupyter Notebookを起動したところから始めます。それでは「New -> Python3」をクリックして下さい。

スクリーンショット 2017 12 31 20 12 37

これでPython3のノートブックが作成されました。以下のようにコードを入力して、実行ボタンを押すと、以下のように実行結果が表示されます。

スクリーンショット 2017 12 31 20 16 20

メニューの「Code」のプルダウンからMarkdownに変更することもできます。

スクリーンショット 2017 12 31 20 16 39

こうすると普通にMarkdownで書けます。

スクリーンショット 2017 12 31 20 34 27

スクリーンショット 2017 12 31 20 33 33

こんな感じです。ソースコードの実行結果とMarkdownでデータ分析した内容を整理できることが分かります。

あと、ちゃんとファイルには名前をつけて分かるようにしましょう。
「File -> Rename」でできます。

スクリーンショット 2017 12 31 20 20 14

よくあるインターフェースなので分かりやすいです。

スクリーンショット 2017 12 31 20 20 29

作業が終了したら保存します。左端のアイコンからできます。

スクリーンショット 2017 12 31 20 18 30

そして終了します。
「File -> Close and Halt」です。

スクリーンショット 2017 12 31 20 22 06

終了すると、最初の一覧に戻ります。ここで作成したファイルを一覧で管理できます。ノートブック形式で保存されていることが分かりますね。

スクリーンショット 2017 12 31 20 20 46

作ったノートブックを出力する

作ったノートブックのページから「File -> Download as」から好きな形式でダウンロードできます。

出力できる形式

  • Notebook
  • Python
  • HTML
  • reST
  • PDF

スクリーンショット 2017 12 31 20 47 48

便利ですね。ほしいフォーマットはだいたいあります。

作ったノートブックをシェアする

作ったノートブックはnbviewerを通して世界にシェアできます。試してみて下さい。

https://nbviewer.jupyter.org/

最後に

いかがでしたか?初歩的な内容ではありますが、データサイエンスを始める上では役に立ったのではないでしょうか。今後TonsorFlowなどの流行りのディープラーニングライブラリを使う場合なども今回の環境からスタートできます。では。

環境

  • OS : macOS High Sierra 10.13.2
  • Anaconda : 4.3.0
  • Python : 3.6.0
  • Jupyter : 4.2.1
  • Jupyter Notebook : 4.3.1

カテゴリ : 技術 Tips & Tutorials タグ : anaconda, jupyter, python

ブログ更新情報や海外の関連情報などを配信する無料メルマガ

Sponsored Links

About Author

KD

世界を旅し日本を愛するエンジニア。大学でコンピュータサイエンスの楽しさを学び、日本の大手IT企業で働く中で、新しい技術やスケールするビジネスが北米にある事に気づく。世界に挑戦するための最大の壁が英語であったため、フィリピン留学およびカナダ留学を経て英語を上達させた。現在は日本在住でエンジニアとして働きつつ、次の挑戦に備えて世界の動向を注視している。挑戦に終わりはない。このブログでは、エンジニアやデザイナー向けの技術情報から、海外に留学したい人向けの留学情報、海外に興味がある人向けの海外旅行情報など、有益な情報を提供しています。

https://casualdevelopers.com/

最近の投稿

  • 2020年JS周辺のバックエンド寄りの注目技術!ネクストNodeJSの「Deno」と分散型パッケージレジストリの「Entropic」の紹介

    2020年JS周辺のバックエンド寄りの注目技術!ネクストNodeJSの「Deno」と分散型パッケージレジストリの「Entropic」の紹介

    2020年1月13日
  • 今さら聞けないJavaによる関数型プログラミング入門 ~ラムダ式、ストリーム、関数型インターフェース~

    今さら聞けないJavaによる関数型プログラミング入門 ~ラムダ式、ストリーム、関数型インターフェース~

    2019年11月4日
  • ReactのためのEslintおよびPrettierの設定方法 ~Airbnb JavaScript Style Guideの適用~

    ReactのためのEslintおよびPrettierの設定方法 ~Airbnb JavaScript Style Guideの適用~

    2019年10月30日
  • BashからZshに移行する方法(Mac編)

    BashからZshに移行する方法(Mac編)

    2019年10月21日
  • Create React Appを使わないでゼロからReactの開発環境を構築する方法(Webpack/Docker編)

    Create React Appを使わないでゼロからReactの開発環境を構築する方法(Webpack/Docker編)

    2019年9月30日

カテゴリ

  • 技術 Tips & Tutorials (100)
  • 技術塾 (6)
  • ライフハック (26)
  • 海外留学 (12)
  • 英語学習 (3)
  • コラム (6)

アーカイブ

最高の学習のために

人気記事ランキング

  • MySQLで「ERROR 2003 (HY000): Can't connect to MySQL server」と怒られた時の対処法
    MySQLで「ERROR 2003 (HY000): Can't connect to MySQL server」と怒られた時の対処法
  • Expressで「Cannot set headers after they are sent to the client」と怒られた時の対処法
    Expressで「Cannot set headers after they are sent to the client」と怒られた時の対処法
  • SAKURAのメールボックスで独自ドメインのメールを設定し、Gmail経由で送受信する方法
    SAKURAのメールボックスで独自ドメインのメールを設定し、Gmail経由で送受信する方法
  • Jupyter Notebookで「The kernel appears to have died. It will restart automatically.」というエラーが出た場合の原因と対処法
    Jupyter Notebookで「The kernel appears to have died. It will restart automatically.」というエラーが出た場合の原因と対処法
  • [tips][perl] Perlで文字コードをいい感じに処理する方法
    [tips][perl] Perlで文字コードをいい感じに処理する方法
  • 爆速でJenkinsをマスターしよう(GitHubアカウント統合編) ~ JenkinsのGitHub Organizationの設定方法 ~
    爆速でJenkinsをマスターしよう(GitHubアカウント統合編) ~ JenkinsのGitHub Organizationの設定方法 ~
  • FacebookログインのJavascriptのSDKをサクッと試す方法
    FacebookログインのJavascriptのSDKをサクッと試す方法
  • PythonでWebスクレイピング入門(Scrapy+Selenium編)
    PythonでWebスクレイピング入門(Scrapy+Selenium編)
  • Amazon EC2インスタンスにSSHできなくなった時の対処法
    Amazon EC2インスタンスにSSHできなくなった時の対処法
  • [tips][bat] バッチで明日の日付を計算する。
    [tips][bat] バッチで明日の日付を計算する。

Bitcoin寄付 / BTC Donation

Bitcoinを寄付しよう

BTC
Select Payment Method
Personal Info

Donation Total: BTC 0.0010

このブログの運営のためにBitcoinでの寄付を募集しています。お気持ち程度の寄付を頂けると管理者の励みになります。

Bitcoin寄付について知りたい方はこちらの記事へ

ビットコイン取引ならここ

  • ホーム
  • 技術 Tips & Tutorials
  • 技術塾
  • ライフハック
  • 海外留学
  • 英語学習
  • コラム
  • サイトマップ
  • タグ一覧
  • プライバシーポリシー
  • お問い合わせ

Copyright © 2023 KD - Casual Developers Notes