[英]Cnn keras model what no of trained parameter represents and improve the model
我正在尋找有關keras cnn模型的有用建議。 我有一個非常小的數據集(144張圖像),我正在通過keras cnn
訓練,我嘗試添加許多layers
和num_of_filters
但即使trained parameter
數量為num_of_filters
,准確性也沒有增加。 大量參數是否代表更多機會獲得良好的精度? 下面是我現有的模型,它給出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 )。 這是用於擬合較小數據集的技術之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.