最近,我阅读了一篇关于使用面部图像进行年龄检测的研究论文。所以现在正因为如此,我正试图通过将 CNN 应用于面部图像数据集(以及他们各自的年龄)来预测他们的年龄(例如 0-10, 11-20、21-30...)。
用于训练和测试
training.shape (50000, 28, 28)
testing.shape (2938, 28, 28)
我试图保持图像小,因为它们可以运行得更快以及使用灰度。对于实际的图层本身,我尽量保持简单,现在,
model = Sequential()
model.add(Conv2D(64, kernel_size=3, activation='relu', input_shape=(28,28,1)))
model.add(Conv2D(32, kernel_size=3, activation='relu'))
model.add(Flatten())
model.add(Dense(10, activation='softmax'))
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (None, 26, 26, 64) 640
_________________________________________________________________
conv2d_2 (Conv2D) (None, 24, 24, 32) 18464
_________________________________________________________________
flatten_1 (Flatten) (None, 18432) 0
_________________________________________________________________
dense_1 (Dense) (None, 10) 184330
=================================================================
Total params: 203,434
Trainable params: 203,434
Non-trainable params: 0
_________________________________________________________________
编译如下
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
到目前为止,运行 100 个 epoch 后的最佳准确度是 37.16。这不是很好,但最近我可以访问我的一所学校的 gpu,所以我想修复我做错的任何事情并改进我的模型。在改进模型方面有什么可以推荐的吗?这可能是我第一次尝试这样做。