勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

Fireタブレットだけでゼロから学ぶDeep Learning

ちょっと思うことがあって、Amazon Kindle Fire HD8で「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」(電子版はAmazonではなくOreillyから購入)を読みつつ、Fireタブレット上にPythonの実行環境を作ってコードの実行までやってみた。出来ないことも多いが、意外と戦える。実質的にFire 7980円+電子書籍2938円で意外と面白い勉強環境を構築することができる。


Fireタブレットで出来ることと、出来ないこと

Fire HD 8 タブレット (8インチHDディスプレイ) (第7世代) 16GB

Fire HD 8 タブレット (8インチHDディスプレイ) (第7世代) 16GB

  • 発売日: 2017/06/06
  • メディア: エレクトロニクス

先に結論から。

なお今回はFire HD8でやってみたが、他のFireやAndroidタブレットでも同じことができると思う。

どうしてそうなった

  • 家にもデスクトップPCはあるのだけど、家族共用なので長時間占有しにくい事情あり。コドモがマイクラやり始めたので状況悪化!
  • 社用のノートPCもあるけど環境を汚したくない。
  • クラウドに学習環境を構築してタブレットから接続することも考えてたが、ローカルで戦えることがわかったので試してみたら意外と出来た!

FireでPython実行環境構築

  • 実施環境はKindle Fire HD 8(第7世代)+FireOS 5.4
  • termuxというandroidアプリをインストールしてlinux環境を構築、Python及び必要なライブラリをセットアップ、Jupyter Nootebookまで導入する

$ packages install clang python python-dev fftw libzmq libzmq-dev freetype freetype-dev libpng libpng-dev pkg-config git
$ LDFLAGS=" -lm -lcompiler_rt" pip install numpy==1.12.0 matplotlib pandas jupyter

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

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

  • 作者:斎藤 康毅
  • 発売日: 2016/09/24
  • メディア: 単行本(ソフトカバー)

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

  • Jupyter notebook起動

$ jupyter notebook

うまくいかない事

  • 冒頭にも書いたけれど、Jupyterから計算量の多いバッチ処理を実行すると termux自体が死んでしまう。具体的には第4章にあニューラルネットワークのバッチ学習処理のサンプルコード「train_neuralnet.py」はJupyterからは実行できなかった
    • おそらく原因はJupyterからの非同期コード実行プロセスにある印象。ipythonから実行すると物凄い遅いが、誤差逆伝播法の処理は実行できる。
  • まぁ、こいつはあくまでおもちゃの類なので、ちゃんとしたスペックの環境を別途構築しようかとは思っている(とりあえずCloud9に環境を建てて試し始めているところ)

スクリーンショット

具体的にはこのような感じになる。動く、動くよ!
f:id:kent4989:20170704225237p:plain:w200f:id:kent4989:20170704225249p:plain:w200f:id:kent4989:20170704225259p:plain:w200