このすみ技術ろぐ

とあるWebエンジニアが、技術や趣味について書くブログです。

機械学習を演習するために、DockerでJupyter Notebookを起動するまで - 技術メモ

お妃様シリーズの「Pythonで機械学習入門」を本格的に読み始めたので、さっそく環境構築から始めました。

本書ではAnacondaをインストールして仮想環境を立てるのですが、まずは気軽にDcokerでやってみます。

Anacondaとは?

本書では、環境構築にAnacondaを使います。 Anacondaとは、「データサイエンス」や「機械学習」のための、PythonおよびR言語用のディストリビューションです。各種ライブラリを1つずつインストールする手間を省くことができ、データサイエンスや機械学習の環境を即座に構築できます。

ちなみにAnacondaの解説は、OSS×クラウドがわかりやすかったです。

www.ossnews.jp

continuumio/anaconda3

Dockerイメージは『continuumio/anaconda3』を使います。

https://hub.docker.com/r/continuumio/anaconda3

Jupyter Notebookを8888番ポートで起動する

Docker Hub内のOverviewに、起動方法が書いてあるので、素直に従います。

Usage
..途中省略..
Alternatively, you can start a Jupyter Notebook server and interact with Anaconda via your browser:  
docker run -i -t -p 8888:8888 continuumio/anaconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser" https://hub.docker.com/r/continuumio/anaconda3 より

さっそく試してみます。

$ docker run -i -t -p 8888:8888 continuumio/anaconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser"
...
[C 14:00:16.491 NotebookApp] Running as root is not recommended. Use --allow-root to bypass.

ルート権限での実行は推奨されず、『--allow-root』が必要ですというエラーになります。

そこで『--allow-root』をコマンドオプションに追加して、やり直します。

$ docker run -i -t -p 8888:8888 continuumio/anaconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser --allow-root"
[C 14:11:44.388 NotebookApp] 
    
    To access the notebook, open this file in a browser:
        file:///root/.local/share/jupyter/runtime/nbserver-1-open.html
    Or copy and paste one of these URLs:
        http://29928bcbc5c4:8888/?token=0bc379...aa4
     or http://127.0.0.1:8888/?token=0bc379...aa4

localhostの8888番ポートにアクセスしてみる

ターミナル上にアクセス先URLとトークンが出力されているので、ブラウザからlocalhost(127.0.0.1)にアクセスしてみます。

f:id:konosumi:20200528231545p:plain

正常に表示されていれば成功です。 Dockerさえあればすぐに起動できるのが利点です。

Google Colaboratory

それよりもさらに楽なのは、Google Colaboratoryを使う方法です。

Colaboratory とは
Colaboratory(略称: Colab)では、ブラウザから Python を記述し実行できるほか、次の特長を備えています。

  • 構成が不要
  • GPU への無料アクセス
  • 簡単に共有

Colab は、学生、データ サイエンティスト、AI リサーチャーの皆さんの作業を効率化します。詳しくは、Colab のご紹介をご覧ください。下からすぐに使ってみることもできます。
 
https://colab.research.google.com より

Google Colaboratoryで演習する場合、ローカル環境の構築すら不要になります。

さいごに

機械学習の環境構築は大変なイメージだったのですが、いざ始めてみたらお手軽で驚きました。

お妃様シリーズの機械学習本は、1冊目も2冊目もおもしろかったので、読み進めていくぞい。

機械学習入門 ボルツマン機械学習から深層学習まで

機械学習入門 ボルツマン機械学習から深層学習まで

  • 作者:大関真之
  • 発売日: 2016/12/01
  • メディア: 単行本(ソフトカバー)