CIFAR10で苦戦

Keras/Tensorflowを使ってCIFAR10の画像認識に挑戦。

 

PC上で動かすには畳み込み層4つぐらいに抑えたい、あまり大きくないネットワークやパラメータ数でなんとか80%以上に認識率達成出来ないか?

 

過学習傾向強く、画像拡張とドロップアウトを適度に入れ込む必要ある。

 

3日間苦戦後、画像拡張とドロップアウト過学習傾向から脱却出来た。以下のネットワークではどうか?train_dataとval_data両方ともEpoch=80で75%以上に到達。まだまだ認識率向上できそうなので、明日は、Colab使ってEpoch=300でやってみよう。

 

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', padding='same', input_shape=(32, 32, 3)))
model.add(layers.BatchNormalization())
model.add(layers.Conv2D(32, (3, 3), activation='relu', padding='same', input_shape=(32, 32, 3)))
model.add(layers.BatchNormalization())
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Dropout(0.1))

model.add(layers.Conv2D(64, (3, 3), activation='relu', padding='same'))
model.add(layers.BatchNormalization())
model.add(layers.Conv2D(64, (3, 3), activation='relu', padding='same'))
model.add(layers.BatchNormalization())
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Dropout(0.2))

model.add(layers.Flatten())
model.add(layers.Dense(128, activation='relu'))
model.add(layers.BatchNormalization())
model.add(layers.Dropout(0.3))
model.add(layers.Dense(10, activation='softmax'))