前回準備した画像で学習してみる
https://colab.research.google.com/drive/1NQhm5hCOFqv1v-QZM-AuGr1bDWbz2Mgh
学習結果は
WARNING:tensorflow:Variable *= will be deprecated. Use `var.assign(var * other)` if you want assignment to the variable value or `x = x * y` if you want a new python Tensor object. Train on 7722 samples, validate on 200 samples Epoch 1/100 7722/7722 [==============================] - 6s 765us/step - loss: 2.2591 - acc: 0.1444 - val_loss: 2.1802 - val_acc: 0.2200 Epoch 2/100 7722/7722 [==============================] - 4s 508us/step - loss: 2.0826 - acc: 0.2370 - val_loss: 2.0145 - val_acc: 0.2700 Epoch 3/100 ... Epoch 99/100 7722/7722 [==============================] - 4s 500us/step - loss: 0.6649 - acc: 0.7762 - val_loss: 1.5615 - val_acc: 0.5650 Epoch 100/100 7722/7722 [==============================] - 4s 502us/step - loss: 0.6505 - acc: 0.7835 - val_loss: 1.3909 - val_acc: 0.5450 <keras.callbacks.History at 0x7f75c9ba2780>
テストデータの分類精度は55%程度までしかあがらなかった
検証用に2個ずつ残しておいた画像を分類してみる
model.predict_classes(x_valid) → array([5, 0, 1, 7, 6, 5, 3, 3, 4, 4, 5, 9, 6, 6, 5, 6, 8, 8, 9, 1])
12/20で60%の正解だった
(すべて正解していれば [0, 0, 1, 1, 2, 2, 3, 3, ... , 9, 9] となるはず)
外れたやつをいくつか見てみる
1枚目はカレーの画像だけど、キャラ弁的に何かが乗っかっているみたいなので分類は難しいのかも
2枚目は餃子の画像だけど32x32に縮小すると何かわからない
3枚目と4枚目はハンバーグの画像のはずだけど僕がみても何かよくわからない
逆に当たっていたのも見てみると
オムライスは黄色が特徴的だからかどちらも正解
カレーやラーメンもそれっぽい画像は当てられていた
ということで、自分で集めた画像データでもそれなりの分類をできた
やったね