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

Fire HD 8 タブレット (8インチHDディスプレイ) (第7世代) 16GB
- 発売日: 2017/06/06
- メディア: エレクトロニクス
先に結論から。
- 簡易的なLinux環境を作り、各種ソフトウェアを導入してデータサイエンティスト向けのPython実行環境Jupyter Notebookをスタンドアロンで動くようにする
- Jupyter上で一定の計算量までのコード実行や計算結果のグラフ表示などを行う
- どこまで出来るかというと「 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 」の第3章までは楽勝。4章でニューラルネットワークのバッチ学習処理あたりから、計算途中でストップしてしまう(計算量の少ない誤差逆伝播法でも無理)。
- PIL(Pillow)はうまく導入できない(同書の第3章で使っている画像関連のライブラリ)
どうしてそうなった
FireでPython実行環境構築
- 実施環境はKindle Fire HD 8(第7世代)+FireOS 5.4
- termuxというandroidアプリをインストールしてlinux環境を構築、Python及び必要なライブラリをセットアップ、Jupyter Nootebookまで導入する
- Termux
- ほとんど次のページに記載の通り:Running Jupyter and the Scipy stack on Android | Leonardo Uieda
- FireはGoogle Playが利用できないのでapkファイルをES File Explorerなどを使って直接インストール
- numpyの最新版はインストール失敗してしまうため、1.12.0を指定するのが良さそう(現在最新は1.13.0)
$ 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で学ぶディープラーニングの理論と実装」のサンプルコードをgithubからクローンする。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
- 作者:斎藤 康毅
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
$ git clone https://github.com/oreilly-japan/deep-learning-from-scratch.git
- Jupyter notebook起動
$ jupyter notebook
- 表示されるURLにSilkブラウザでアクセス
- ノートブックを作成してレッツコーディング
- Jupyterの終了はtermuxのコンソールに戻ってボリュームダウンのハードキー+cを押して終了確認のプロンプトを表示させ、yを入力
うまくいかない事
- 冒頭にも書いたけれど、Jupyterから計算量の多いバッチ処理を実行すると termux自体が死んでしまう。具体的には第4章にあニューラルネットワークのバッチ学習処理のサンプルコード「train_neuralnet.py」はJupyterからは実行できなかった
- おそらく原因はJupyterからの非同期コード実行プロセスにある印象。ipythonから実行すると物凄い遅いが、誤差逆伝播法の処理は実行できる。
- まぁ、こいつはあくまでおもちゃの類なので、ちゃんとしたスペックの環境を別途構築しようかとは思っている(とりあえずCloud9に環境を建てて試し始めているところ)
スクリーンショット
具体的にはこのような感じになる。動く、動くよ!