0

我想使用 CNN 制作一个图像分类器。数据集中有两种类型的图像:男性和女性。总共有 2300 张图像,其中 20% 用于验证。问题是我的模型由于过度拟合而根本不好(我认为这就是问题所在),但我无法弄清楚为什么我的模型过度拟合如此糟糕(请打开下图的链接。y 的最大值是 3.5)这是我用来进行双分类预测的 keras 模型

early_stopping = EarlyStopping(min_delta = 0.001, patience = 20, restore_best_weights = True)
model = tf.keras.Sequential()   
model.add(tf.keras.layers.Conv2D(64, (3, 3), activation = 'relu'))  
model.add(tf.keras.layers.MaxPooling2D((2, 2)))
model.add(tf.keras.layers.Conv2D(64, (3, 3), activation = 'relu'))  
model.add(tf.keras.layers.MaxPooling2D((2, 2)))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(32, activation = 'relu'))
model.add(tf.keras.layers.Dropout(0.25))
model.add(tf.keras.layers.Dense(32, activation = 'relu'))
model.add(tf.keras.layers.Dropout(0.25))
model.add(tf.keras.layers.Dense(2, activation = 'softmax'))
opt = keras.optimizers.Adam(learning_rate=0.01)
model.compile(optimizer = 'adam', loss = 'sparse_categorical_crossentropy', metrics = ['accuracy']) 
history = model.fit(xtrain, ytrain, validation_data = (xval, yval), batch_size = 16, epochs = 100, callbacks = [early_stopping], verbose = 0)

我通常会得到这种结果

4

0 回答 0