LoginSignup
30
31

More than 5 years have passed since last update.

オンデマンドなJupyter Notebook環境でいつでもどこでも機械学習を学習する

Last updated at Posted at 2015-11-21

最近、機械学習にどっぷり浸かっていますが、Jupyter Notebookを使うと勉強が捗るので重宝しています。せっかくブラウザで利用できるので、ブラウザさえあればいつでもどこでも―自分のお気に入りノートPCが手元になくとも、自分の「ノート」を開けるような環境が欲しくて作ってみました。


概要

DigitalOcean上にDockerJupyter Notebook環境を構築します。

DigitalOceanは格安のいわゆるIaaSです。時間単位の課金で、2015/11/21時点で0.86円/時($0.007/時)で利用できます。DigitalOceanのWebページ上でサーバの電源をOFFにしておけばお金がかからないので、勉強したい時だけ電源をONにするといった利用が可能です。

Dockerは言わずと知れたコンテナ型のアプリケーションデプロイツールです、ここではJupyter Notebook環境の構築を簡便化するために用います。コンテナとしてはscikit-learn等がプリインストールされたこちらのコンテナを利用します。

※ 作成する環境ではJupyter Notebookにパスワード認証でログインします。credentialな内容を本環境に配置する場合は、より強固な認証機構の導入を検討してください。

環境構築

Dropletの作成

DigitalOceanではDropletという単位でサーバを構築します。

前提として、DigitalOceanのアカウントを作成したら、こちらの記事に従って公開鍵を登録しておきます。

  1. DigitalOceanにログインして、「Create Droplet」をクリックします

  2. 以下内容でDropletを作成します(Choose an imageはDockerを選択します)

    • Droplet Hostname: notebooks ※任意
    • Choose a sizze $5/mo ※任意
    • Choose a datacenter region: New York ※任意
    • Choose an image: Docker 1.9.1 on 14.04
    • Select additional options:
    • Add your SSH keys: <事前に登録してある公開鍵の名前>

Jupyterコンテナのデプロイ

  1. Dropletの作成が完了すると作成されたDropletのIPアドレスが表示されます。手元のPCからsshでDropletにログインします。

    $ ssh root@<IPアドレス>
    
  2. 作業スペースのディレクトリを作成します 1

    $ mkdir /opt/notebooks # 場所は任意
    $ chmod a+w -R /opt/notebooks
    
  3. scikit-learn等機械学習に必要なパッケージが含まれたJupyterコンテナを起動します

    $ docker run -d --restart always -p 8888:8888 -v /opt/notebooks:/home/jovyan/work -e PASSWORD=<任意のパスワード> jupyter/datascience-notebook
    
  4. ブラウザでhttp://<IPアドレス>:8888にアクセスして確認します


後は、いつもの通りにJupyter Notebookを使用してみてください。一通り作業が終わったら、DigitalOceanのWeb上から「Power off」してみます。後で「Power on」すると、自動的にJupyter Notebookが立ち上がります。

昔、「Emacsorgモードって文章を書くには適しているが、もっと気軽にプログラムコード実行できないものか、さらにその結果も反映できないものか」って思ってた頃がありましたが、Jupyter Notebookはこれを叶えてくれるツールだなと思います。そういう意味で今の学生さんは幸せだと思うし、学校でもJupyter Notebookを積極的に導入したら良いのではと思う今日このごろです


  1. 自分は/opt/notebooksをgitで管理してみています 

30
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
31