gpt4 book ai didi

python - CNN 的验证准确率没有提高

转载 作者:行者123 更新时间:2023-11-30 09:41:32 25 4
gpt4 key购买 nike

我有大约 8200 张图像用于人脸检测任务。其中 4800 个包含人脸。其他 3400 张图像包含 3D 人脸面具(由橡胶/ latex 制成)、卡通人脸、猴子脸的图像。我想检测给定的图像是否包含真实的人脸。

我训练了许多网络,改变了超参数,但每次我的训练准确率都达到 98% 以上,验证准确率保持在 60-70% 左右。我尝试过包含 3-5 个 Conv 层和 1 个 FC 层的网络。我使用 L2 正则化、批量归一化、数据增强和 dropout 来消除过度拟合。然后,随着训练的进行,我尝试降低 Adam 优化器的学习率。我对网络进行了超过 100 个 epoch 的训练,有时甚至高达 200 个 epoch。然而,我能达到的最佳验证准确度(数据集的 20%)是 71%。有没有办法将验证准确率提高到 85% 以上?我使用了以下架构,输入图像大小为 256*256*3,并使用批量大小 16 对其进行训练。

regularizer = tf.keras.regularizers.l2(l=0.005)
model = tf.keras.models.Sequential([

tf.keras.layers.Conv2D(64, (5, 5),strides=(2, 2), activation='relu', input_shape=(256, 256, 3), kernel_regularizer=regularizer),
tf.keras.layers.MaxPooling2D(2, 2),

tf.keras.layers.Conv2D(96, (5, 5), padding='same', activation='relu', kernel_regularizer=None),
tf.keras.layers.MaxPooling2D(2, 2),

tf.keras.layers.Conv2D(128, (3, 3), padding='same', activation='relu', kernel_regularizer=None),
tf.keras.layers.MaxPooling2D(2, 2),

tf.keras.layers.Conv2D(256, (3, 3), padding='same', activation='relu', kernel_regularizer=None),
tf.keras.layers.MaxPooling2D(2, 2),

tf.keras.layers.Flatten(),

#tf.keras.layers.Dense(2048, activation='relu', kernel_regularizer=regularizer),
tf.keras.layers.Dense(4096, activation='relu', kernel_regularizer=None),
tf.keras.layers.Dropout(0.4),
tf.keras.layers.Dense(1, activation='sigmoid', kernel_regularizer=regularizer)
])

最佳答案

  • 确保您使用所有可用的数据增强形式(缩放、旋转、平移、翻转等)。
  • 在所有层上使用内核正则化器。
  • 在所有 Conv 层之后添加 SpatialDropout2D
  • 在所有 Conv 层和 Dense 层之后添加 BatchNormalization(显然,最后一个 Dense/sigmoid 层除外)。
  • 缩小网络规模(更少的层数和/或每层更少的过滤器/单元);您想要仍然可以学习训练数据的尽可能最小的网络。

如果所有这些组合不足以获得良好的验证准确性,那么您可能只是没有足够的数据。

<小时/>

一些可能不会减少过度拟合的提示,但通常会有所帮助:

  • 优先选择 3x3 内核卷积层序列,而不是具有 5x5 或更大内核的单个卷积层。
  • 将 Flatten 层替换为 GlobalAveragePooling 层,并可能删除除最后一个层之外的所有 Dense 层。
  • 使用 stride=2 或 MaxPooling,而不是同时使用。

关于python - CNN 的验证准确率没有提高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58119629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com