Cnn keras 模拟训练参数的数量代表什么并改进模型

Cnn keras model what no of trained parameter represents and improve the model

我正在为 keras cnn 模型寻找一些有用的建议。 我有一个非常小的数据集(144 张图像),我正在通过 keras cnn 进行训练 我试图添加许多 layersnum_of_filters 但准确性并没有增加 trained parameter 的偶数为 111,453,342。大量参数是否代表更多机会获得良好的准确性?下面是我现有的模型,它给出了 val_acc=0.56。我如何改进我的模型。

inputs=Input(shape=(100,100,1))
x=Conv2D(28, (5, 5), padding='same')(inputs)
x=SReLU()(x)
x=MaxPooling2D(pool_size=(2,2), strides=(1, 1))(x)
x=Conv2D(14, (4, 4), padding='same')(x)
x=SReLU()(x)
x=MaxPooling2D(pool_size=(2,2), strides=(1, 1))(x)
x=Conv2D(7, (3, 3), padding='same')(x)
x=SReLU()(x)
x=MaxPooling2D(pool_size=(2,2))(x)
x=Flatten()(x)
x=Dropout(0.2)(x)
x=Dense(512)(x)
x=SReLU()(x)
#x=keras.layers.GlobalMaxPooling2D()(x)
x=Dropout(0.2)(x)
x=Dense(num_classes)(x)

output=Activation('softmax')(x)
model=Model([inputs], output)

参数过多容易过拟合。如果您的训练准确率接近 100%,而您的验证准确率仅为 50% 左右,情况就是如此。如果是这种情况,您可能想看看迁移学习 (https://towardsdatascience.com/transfer-learning-using-keras-d804b2e04ef8)。这是用于拟合较小数据集的技术之一。