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

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


『 機械学習 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。