TensorFlowを使って猫の種類の判別機を作る
TensorFlowを使って猫の種類の判別機を作ります。TensorFlowをインストールしている前提で話します。
pythonのバージョンはpython3です。
まずは、TensorFlowのフォルダをGithubから落としてきてください
画像を集める
google_images_downloadをインストール
pip install google_images_download
画像をダウンロードする
googleimagesdownload -k 猫の種類
で画像を集めに行きます。
アメショーかわいいですね。
学習
集めた猫の画像を学習させます。
その際、学習データのフォルダを英語に変更しておいてください。
そして、そのフォルダをgakusyu_data(作ってください)という名前のフォルダに入れて、落としたTensorFlowのフォルダのtensorflow/tensorflow/examples/image_retrainingに入れておきます。
中味はこんな感じです
retrain.pyなんてないよって方は調べれば出てくるので、ソースコードをコピーして作ってください。
コマンドプロンプトを開き
tensorflow/tensorflow/examples/image_retrainingに移動します。
そこで
python retrain.py --bottleneck_dir=bottlenecks --how_many_training_steps=学習データ数 --model_dir=inception --summaries_dir=training_summaries/basic --output_graph=retrained_graph.pb --output_labels=retrained_labels.txt --image_dir=gakusyu_data
を実行します。ファイル名でエラーが出る場合があるので、その場合はファイル名を変えてください
完了すればOKです。
画像判別
次に判別させます。
tensorflow/tensorflow/examples/image_retrainingに判別させたい画像ファイルを入れておいてください。
まず、tensorflow/tensorflow/examples/label_imageにあるlabel_image.pyをtensorflow/tensorflow/examples/image_retrainingに移動しておきます。
そして
python label_image.py --image 画像ファイル名 --graph retrained_graph.pb --labels retrained_labels.txt
を実行すると
このような結果がでます。
KeyCodeErrorが出る場合はlabel_image.pyの84,85行目を
input_layer = "Mul"
output_layer = "final_result"
に変更すると治るらしいです。自分は治らなかったので調べてみると判別させるコマンドの最後に--input_layer=Placeholder
を入れると動きました。
ではまた。