繁体   English   中英

如何提高我的模型的准确性? (猫对狗图像识别)

[英]How to increase my models' accuracy? (Cats vs Dogs image recognition)

我的 model 的准确率已达到 71%,但它几乎总是将图片标记为“狗”(约 67% 的图片是狗)。 我的训练数据集包含 3680 张图片,测试数据集包含 3670 张图片。

model = Sequential()
model.add(Conv2D(filters=64, kernel_size=(3, 3),activation='relu', padding="same", input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Dropout(0.2))
model.add(Conv2D(filters=128, kernel_size=(3, 3),activation='relu', padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Dropout(0.25))
model.add(Conv2D(filters=256, kernel_size=(3, 3),activation='relu', padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Dropout(0.3))
model.add(Conv2D(filters=512, kernel_size=(3, 3),activation='relu', padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Dropout(0.35))
model.add(Conv2D(filters=512, kernel_size=(3, 3),activation='relu', padding="same"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2)))
model.add(Dropout(0.4))
model.add(Flatten())
model.add(Dense(4096, activation='relu'))
model.add(Dense(4096, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))

我正在将图片大小调整为 200x200 正方形,并在训练前对数据进行洗牌。 我已将其设置为 64 个批量大小和 60 个 epoch(约 7 小时的训练)。 我正在使用学习率 = 0.001 的 Adam 优化器(增加 lr 会导致过度拟合)。 我应该缩小我的测试集吗? 我有太多的辍学? 我的参数没问题吗?

您的参数很好,但是您正在输入 NN 200x200 图像,这可能会导致一些欠拟合(即:NN 一次获得太多数据并且因此性能不佳)。

要解决此问题,请尝试将图像设置为更像 50x50 的大小,这将显着加快训练速度。 您可以通过一个简单的 python 脚本使用 glob 和 PIL 库来执行此操作,默认情况下应该安装这些库。 如果未安装PIL ,请运行pip install Pillow ,它应该安装它。

您也可以尝试使用numpy将它们转换为黑白。

如果您查看数据科学页面,这里有一些很好的神经网络架构示例,您可以使用它们来改进您的 model。 例如,您可以使用带有残差训练的类似 ResNet 的结构,或者您可以使用类似 Inception 的网络,将不同的 Conv2D kernel 大小合并在一起。 这允许使用不同的内核提取“不同大小”的特征并将信息合并在一起。 另外我建议您将激活从“relu”更改为“selu”,以避免神经元死亡并添加一些非线性。 还可以看看 SeparableConv2D 层。 它们有助于加快训练速度,如果以正确的方式使用,可以提高性能。

还建议将 dropout 层留在 model 的“末尾”,以便让第一层学习特征并使用最后一层来解释泛化并避免过度拟合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM