项目地址 http://manaai.cn/aicodes_detail3.html?id=35
请教一下各位大佬,我尝试重现这个项目(单个手写汉字的识别),
使用的就是文中的简单模型,如下:
model = tf.keras.Sequential([
layers.Conv2D(input_shape=input_shape, filters=32, kernel_size=(3, 3), strides=(1, 1),
padding='same', activation='relu'),
layers.MaxPool2D(pool_size=(2, 2), padding='same'),
layers.Conv2D(filters=64, kernel_size=(3, 3), padding='same'),
layers.MaxPool2D(pool_size=(2, 2), padding='same'),
layers.Flatten(),
# layers.Dense(1024, activation='relu'),
layers.Dense(n_classes, activation='softmax')
])
return model
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 64, 64, 32) 320
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 32, 32, 32) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 32, 32, 64) 18496
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 16, 16, 64) 0
_________________________________________________________________
flatten (Flatten) (None, 16384) 0
_________________________________________________________________
dense (Dense) (None, 3755) 61525675
=================================================================
Total params: 61,544,491
Trainable params: 61,544,491
Non-trainable params: 0
_________________________________________________________________
我用一个带GPU的比较弱的云主机,跑了15000个epoch,用了2天多。training准确滴差不多达到0.9999,可是validate准确率,还是停留在0.61附近。
这是继续训练模型时,拿到的log,validate准确度不会再变化了。
WARNING:tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of batches seen.
Epoch 1/10
1024/1024 [==============================] - 21s 20ms/step - loss: 0.0087 - accuracy: 0.9999 - val_loss: 544.5386 - val_accuracy: 0.6219
Epoch 2/10
1024/1024 [==============================] - 20s 19ms/step - loss: 0.0027 - accuracy: 1.0000 - val_loss: 541.1600 - val_accuracy: 0.6267
Epoch 3/10
1024/1024 [==============================] - 19s 18ms/step - loss: 6.6371e-04 - accuracy: 0.9999 - val_loss: 537.3775 - val_accuracy: 0.6217
Epoch 4/10
1024/1024 [==============================] - 18s 18ms/step - loss: 0.0304 - accuracy: 0.9998 - val_loss: 538.4648 - val_accuracy: 0.6226
Epoch 5/10
1024/1024 [==============================] - 20s 19ms/step - loss: 0.0067 - accuracy: 0.9999 - val_loss: 539.5592 - val_accuracy: 0.6237
这么简单的网络也会overfit吗?请教各位大佬提点一下下一步的优化方向