Dogs vs. Cats Redux
今回はPractical Deep Learning for CodersのLesson1の結果をまとめてみた。題材はKaggleの犬・猫分類。
Dogs vs. Cats Redux: Kernels Edition | Kaggle
以前やったVGG16のFine-tuningによる犬猫認識(2017/1/8)と同じタスク。前回は1000画像の小セットだけでFine-tuneしたが、今回は25000画像の全データを使ってFine-tuneしてKaggleに投稿するところまで通しで試した。
オリジナルのコードはPython2でKeras1 (Theano backend)でしか動作しない。そこで、今回は
- Python3 と Keras2 (Tensorflow backend) を使って再実装する
- 提供されている
utils.py
とvgg16.py
は使わずにスクラッチからKeras APIだけで書く
でやってみた。最終的にバリデーション精度は98.4%だった。テスト精度は残念ながらわからない。Kaggleではテストセットに正解ラベルが付いてないし、投稿してもLogLossしか表示されないから。
Notebookには全部載せてあるが一部の実行結果だけ載せておこう。上の数字は猫である確率なので0に近いほど犬で1に近いほど猫に分類されたことを意味している。ちゃんと分類できている。
Kaggleにsubmitしてみた結果がこちら。
スコア(LogLoss)0.1程度だと460位くらいなので全然ダメ。まあVGG16をそのまま使っただけなのでこんなものか。今後、改良して順位がどう上がるか見ていこうと思う。
Jupyter Notebookの内容をコピペしてブログに貼ろうと思ったんだけ止めた。そのまま見た方がわかりやすいしね。今後はしばらくこのスタイルで行くかも。