スポンサーリンク

Tensorflow入門(2)Windows8.1(Docker)でTensorFlow「ImageNet」を試してみる

<2017/7/31 追記>

Tensorflow 1.0以降では、WindowsパソコンでもDockerを利用する必要はなく、

Anaconda (Python) + Tensorflow

のインストールですぐに利用できるようになります。

WindowsにPythonをインストールする方法

WindowsにTensorflowとKerasをインストールする方法

 

 

——————————————–

Googleの機械学習フレームワーク「TensorFlow」でImageNetの学習データを使った画像認識を試してみた – TensorFlowのインストールから画像認識まで
nkjmが2016/02/12にKobitoから投稿(2016/02/12に編集)
http://qiita.com/nkjm/items/a2dada74d48b29f0e5f4

に、Macでの画像認識の使用経験の記載があったので、これを写経して、ぜひ、Windowsでもやってみたい!

ちなみに、Windows10 であれば、Bash on Windowsを使用すれば、簡単にできるらしいが、私はWindows10パソコンは持っていないので、確認できず。
Windows 10のBash on WindowsでTensorFlow動かしてみた 2016年8月20日 (土)

(環境)
Windows8.1
Docker Quickstart Terminal
(docker run -p 8888:8888 -p 6006:6006 –name adash333_tensor2 -v //c/Users/(ユーザ名)/tensorflow_share:/notebooks -it b.gcr.io/tensorflow/tensorflow
にて、adash333_tensor2 という名前で、dockerを作成してある。)
Docker内での、 /notebooks/ と、
Windowsでの、 c:\Users\(ユーザ名)\tensorflow_share\ を共有。
環境設定方法は、前回に記載。

http://twosquirrel.mints.ne.jp/?p=8837

(1)上記の環境設定の後、Docker Quickstart Terminalを開き、

[sourcecode language="bash" padlinenumbers="true"]
docker start adash333_tensor2
[/sourcecode]

ブラウザで、192.168.99.100:8888 を開く。

ここまでは前回の復習。

(参考)起動中の docker コンテナのシェルに入る
sekizoが2016/02/07に投稿
http://qiita.com/sekizo/items/27cc9b406332afc674f6

(2)dockerコンテナのシェルに入る

[sourcecode language="bash"]
docker exec -i -t adash333_tensor2 /bin/bash
[/sourcecode]

(参考)Linuxコマンド集日経LINUX 【 find 】 ファイルやディレクトリを検索する
2006/02/27
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230777/

むむ、tensorflow/models/image/ の中に、imagenet がない。

ちなみに、git も、wgetも使えず、apt-getでインストールもできなかった。これは、まいった。。。

(3)Windows側の共有フォルダ「tensorflow_share」に、imagenet フォルダを作成し、以下からclassify_image.py をダウンロードして保存。

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/image/imagenet/classify_image.py

[sourcecode language="bash"]
cd /notebooks
cd imagenet
python classify_image.py
[/sourcecode]

何かをダウンロードし始めた。

できた、、、のか?

(4)引き続き、以下のサイトにある通りにやってみる。画像も、以下のサイトからダウンロードして、Windows側の共有フォルダ「C:\Users\(ユーザ名)\tensorflow_share\imagenet\」の中に保存する。

Googleの機械学習フレームワーク「TensorFlow」でImageNetの学習データを使った画像認識を試してみた – TensorFlowのインストールから画像認識まで
http://qiita.com/nkjm/items/a2dada74d48b29f0e5f4

[sourcecode language="bash"]
python classify_image.py –image_file IMG_4401.jpg
[/sourcecode]

https://qiita-image-store.s3.amazonaws.com/0/26079/ef75a5b4-8ddd-0015-9b3d-194b55a6b88e.jpeg の画像がストーブである確率が99.871%であるとのこと。

http://qiita.com/nkjm/items/a2dada74d48b29f0e5f4 の結果とは、少し異なるが、だいたい同じなので、OKとする。これは面白い!

(4)

pikachu.png

この画像を認識させてみたい!(無理か?)

[sourcecode language="bash"]
python classify_image.py –image_file pikachu.png
[/sourcecode]

「jpgファイルじゃなきゃダメ」と言われてしまった。

Window8.1付属の「ペイント」で、pikachu.jpg で保存。

[sourcecode language="bash"]
python classify_image.py –image_file pikachu.jpg
[/sourcecode]

21%の確率で、envelope 封筒?と認識されてしまった。でも、tensorflowの画像認識にデータを入力し、outputを得ることができて、うれしかった!

なんとかして、次は、何らかの機械学習ソフトを作りたい。(自分でテストデータを打ち込んで、学習させたい。)先は長そうだが、、、

(5)http://www.ac-illust.com/  からいただいた画像を試してみる。

kibou.jpg

[sourcecode language="bash"]
python classify_image.py –image_file kibou.jpg
[/sourcecode]

9%の確率でballoon 風船、7%の確率でparachute パラシュートとのこと。雲と光と認識するのは難しかったか。一つの画像に2つ以上のものが入っていると厳しいか。

 cosmos.jpg

[sourcecode language="bash"]
python classify_image.py –image_file cosmos.jpg
[/sourcecode]

98%の確率で、daisy デイジー とのこと。デイジーはキク科、コスモスもキク科。大丈夫そう。

(6)何をやっているのか全く理解していないが、Dockerのイメージを保存しておく。
(コンテナは保存できない?ホストOS(Windows)との共有フォルダの中身は消去されないのに、、、)

exit

docker commit 43e209d183b6 tensorflow/sample:1.1
docker images

ちなみに、 docker rm (コンテナ名) で、コンテナを削除できる。

docker stop adash333_tensor2

で終了。再度、開始したいときは、Docker Quickstart Terminalを起動して、

docker start adash333_tensor2

とすればよい。

(参考)http://qiita.com/HirofumiYashima/items/6661fc789126f3d227e8
Vagrant と Docker ~ それぞれ、立ち上げ後に行った作業内容を保存する方法
HirofumiYashimaが2015/09/03に投稿(2015/09/04に編集)

(参考リンク)

TensorFlow : ML 初心者向けの MNIST (コード解説)
投稿者: Masashi Okumura in MNIST, TensorFlow 投稿日: 03/09/2016.
http://tensorflow.classcat.com/2016/03/09/tensorflow-cc-mnist-for-ml-beginners/

TensorFlow & ImageNetで画像認識 2016/8/4 2016/8/4
http://diary.aita.info/image-recognition-with-tensorflow-and-imagenet

PepperちゃんにTensorflow画像分類 を導入し(一部日本語で話させ)てみた(for Windows初心者)
chiwaが2016/03/12に投稿
http://qiita.com/chiwa/items/e302f1b67dcb434d8987