mazeltov7のweb断片

備忘録的なテキトーなことを書きます。(技術記事はQiitaに移行しました http://qiita.com/mazeltov7 )

vagrantにdockerでtensorflow入れて、jupyterでhello world

what is this

tensorflow入れて、hello worldするまで
1. virtualenvで入れようとするが、activateされない
2. anacondaで入れようとするが、pyenvと衝突するから?か、activateしようとするとbashが落ちる
3. anacondaで、フルパスでactivateしようとするが、なんかおかしい
4. vagrantにdockerでtensorflow入れる→解決

how I did

1. virtualenvで入れようとする

基本的にここにあるようにやる  Download and Setup
virtualenvで~/tensorflowディレクトリ作って、$source source ~/tensorflow/bin/activateで何もエラー出ず、プロンプトも変わらず、という現象に。

2. anacondaでいれようとする

上記のリンクと同じページのやり方に則ってやる。 が、source activate tensorflowのところで、これを実行するとbashごと落ちる、という現象に…

3. フルパスでactivateトライ

bashごと落ちる問題はここにそれらしいものが書いてました。
pyenvとanacondaを共存させる時のactivate衝突問題の回避策3種類 - Qiita
ここによるとpyenvとanacondaのactivateが衝突してるとのことなので、フルパスで試してみた。
が、prepending $PATH_TO_PYENV/versions/anaconda3-4.0.0/envs/tensorflow/bin to PATHとのエラーが出て、プロンプト起動せず。
conda info -eでチェックすると、確かにtensorflow環境に切り替わってるけど、うまくいかない。

4. vagrantにdockerで入れる

まず、現行のdockerがcentos7じゃないとだめなので、適当にcentos7入ってるvagrant boxを探してきて、box addする。 適当なレポジトリ作って、vagrant initして、Vagrantfileのboxを該当boxに書き換える。で、vagrant up!
Installation on CentOS 終わったら上のリンク通りにdocker入れる。 終わったら、tensorflowのドキュメントに戻って、Create a Docker group to allow launching containers without sudoをやる。あとは、書いてる通りに、docker runするとjupyterが立ち上がる。
で、jupyterのGUIをwebから触るために、virtualboxのポート設定をする。以下参考リンク。この通りにやればOK
How do I start tensorflow docker jupyter notebook - Stack Overflow

以上。