Cnn keras模型没有经过训练的参数表示和改进模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cnn keras模型没有经过训练的参数表示和改进模型相关的知识,希望对你有一定的参考价值。

我正在为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)。这是用于拟合较小数据集的技术之一。

以上是关于Cnn keras模型没有经过训练的参数表示和改进模型的主要内容,如果未能解决你的问题,请参考以下文章

从经过训练的 keras 模型中获取训练超参数

带有keras的CNN,准确性保持不变并且没有提高

如何通过预先训练的InceptionV3加速我的Keras CNN

基于CNN卷积神经网络的TensorFlow+Keras深度学习的人脸识别

keras训练cnn模型时loss为nan

如何使用训练有素的 Keras CNN 模型对新的未标记数据进行预测