初めてですがさささっと適当に書いてみます。
windows10ユーザなのですがtensorflowを動かしたくて、いろいろやってみています。まだ動いてないです。
UdacityのDeep Learningの講座(https://www.udacity.com/course/deep-learning--ud730 )を受けていて、その課題ができるようになるのが目標です。そこに重きを置いて書きます。
一応動く、というところまでにやったこと
以下のサイトの通り進めて、iPythonで一応動くようにはなりました。docker使います。
(ページ下部に追記あり。手順を変更しました。)
https://medium.com/@Rapchik/running-google-s-deep-learning-course-material-under-windows-82d468b6d5be#.6pk8esr9i
ただし、vagrantの仕様が変わったらしく、このサイトで出てくるinsecure_private_keyが見当たりませんでした。これは、このサイトでVagrantfileに追加せよと言われている一文に、さらに以下の記述を加えて解決しました。
config.ssh.insert_key = false
これにより、以下の手順で動かすことができるようになりました。
1. Vagrantfileのあるフォルダでコマンドプロンプトを開き、vagrant up
を実行。
2. PuTTYでサイトの通り入力して(Saveしておくと楽)、Open。なんか出るけどいいえを選択。
3. ユーザ名を聞かれるのでcoreと入力。
4. PuTTY上でcd tensorflow/tensorflow/examples/udacity/
5. docker run -p 8888:8888 -it google_udacity
6. ブラウザでhttp://127.0.0.1:8888/tree を開く
課題
なんとか開けるしtensorflowも動作するようなのでとりあえずよかったのですが、
python notebookの保存ができません。以下のサイトを見て試すも、エラーこそ出ないものの保存はされていない。。。うまくいったときってどこかのフォルダと同期するのでしょうか?
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/udacity/README.md
--pullオプションは反応しなかったので省きました。ダメなのか?dockerよくわかりません。。。
あと、Udacityの課題1で用意されているソースコードを実行すると、
the kernel appears to have died. It will restart automatically.
と出して死ぬのでnotMNISTのデータセットが読み込めません。うまくいかないなぁ。
どなたかうまくいった方がいらっしゃいましたら教えていただきたいです。
----追記----
もがいてたらなんかうまくいきました。/c/Users以下じゃないと共有できないという噂を見かけてびっくり。以下のサイトを参考にさせていただき、方法を色々変えました。docker知らないので何が起こってるのかわからないですが。。。
http://qiita.com/Algebra_nobu/items/6c2b05e2a9a4a5ee456d
- Docker Quickstart Terminalを開き
docker-machine env default
、その後画面に表示されるコマンドeval $(docker-machineへのパス env default)
を打つ。 -
docker run -p 8888:8888 -p 6006:6006 --name tekitou -v //c/Users/共有したいフォルダ:/notebooks -it b.gcr.io/tensorflow/tensorflow
共有したいフォルダは私は~/tensorflow/examples/udacity
にしました。 - Ctrl + c 後、yを入力
docker start tekitou
docker exec -it tekitou bash
また、ファイルが共有できるようになったことで、ファイルが大きすぎてiPython上で解凍できなかったのが、自分で解凍してからiPython側に送ることができるようになりました。これでできるんじゃなかろうか。期待。
----追記----(2016/12/29)
tensorflowがwindowsに対応しましたね!
spyderのコマンドラインで pip install tensorflow
とするだけだった気がします。