人工知能と競プロやってくブログ

深層学習・機械学習・AI・atcoder・競技プログラミングについて調べてやってみたことをまとめるブログです

Fashion-MNISTを畳み込みニューラルネットワークで判定する簡単サンプル

https://gyazo.com/0fb719497a8b66ad998d1235af27d901 「Fashion-MNISTは、MNISTとほぼ同じで画像ファイルが違うだけだから、MNISTの畳み込みニューラルネットワークで判定できるだろうな」
とは思ったんですが、一応確認のためにやってみました。

Fashion-MNISTをCNNで学習しモデルを保存

Kerasのエグザンプルに入っているmnist_cnn.pyをちょっと書き換えて作りました。

python fashion-mnist_cnn_train.py

実行すると学習が行われます。

学習したモデルを読み込んでFashion-MNIST画像を認識させるコード

jupyter notebookで使えます。

GitHubリポジトリ

github.com

ここに学習したモデル込みのコードを置きました。

学習回数に関する考察

12エポック回したモデルと24エポック回したモデルの二つをgithubリポジトリに入れときました。 元にしたKerasのサンプル、mnist_cnn.py に元々書いてあったのは12エポック。 一応、倍回してみたらどんなもんだろうな?と24エポックも回して見ました。

学習時に出力されたloss, acc, val_loss, val_acc を表にまとめたのが次のもの。

で、注目すべきは学習後、テストした結果の成績であるval_lossとval_acc。
12エポックと24エポックの比較グラフが次のもの。

12エポックも24エポックもval_loss、val_accとも似たような値なので、12エポックがほぼ適正な学習回数のようだ。