Edited at

”ゼロから作る Deep Learning”のための環境構築をdockerとVagrantで実現

More than 1 year has passed since last update.


WHY

この記事を書こうと思った理由ですが下記の書籍を年末年始にやって勉強になったのですがPythonに慣れていないと詰まる部分もあり、環境構築に精神コストを削られてこの書籍を完了できない人が出てくるかなと思ったからです。

image.png

ゼロから作るDeep Learning ――Pythonで学ぶディープラーニングの理論と実装


WHAT

詰まると思った部分は図の可視化です。図の可視化にはmatplotlibを使用するのですが環境構築の際に罠があり、それにはまると解消するのに時間的なコストがかかるケースがあります。

そこで誰でも同じ環境を構築できるDockerの出番です。私はVagrantにdocker用の環境を構築してdockerを使用しているので完全に手元のパソコンとは独立した環境を実現しています。

これを実現するのに使用した技術は下記です。


  • Vagrant

  • ansible

  • docker

  • ipython notebook

これらの技術により持ち運びが便利で分かりやすい環境を実現しています。


HOW

実際にどのようにやるかです。

コードを取得してコードのフォルダに移動

git clone https://github.com/SnowMasaya/deep-learning-excerise.git

cd {ダウンロードしたフォルダ}

Vagrantを起動

Vagrantをすでに使用している場合はipアドレスはユニークになる様にしてください。

Vagrantfileの下記の部分を修正します。

config.vm.network "private_network", ip: "{修正するipアドレス}"

vagrant up

環境構築

ansible-playbook -i provisioning/hosts provisioning/site.yml

Dockerイメージを取得

docker pull masayaresearch/deep-learning-scratch-excerise

Dockerを起動してDockerにアクセス

docker run -p 8888:8888 -it masayaresearch/deep-learning-scratch-excerise bash

iPython Notebookを起動

ipython notebook --no-browser --port 8888 --ip=*

ブラウザにアクセス

http://192.168.33.25:8888

下記の画面が出るとipython notebookにアクセスできていることが分かります。

Screen Shot 2017-01-04 at 8.16.58 AM.png

deep-learning-1.ipynbに実際に画像の描画処理を行っているので参考にしてみてください。

Screen Shot 2017-01-04 at 8.23.53 AM.png


コード

github

https://github.com/SnowMasaya/deep-learning-excerise/blob/master/docker/python/deep-learning-1.ipynb

Docker hub

masayaresearch/deep-learning-scratch-excerise


参考

https://github.com/oreilly-japan/deep-learning-from-scratch