Keras图像分类问题

2024-03-29 02:24:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究一个多类问题的图像分类模型。我启动并运行模型,但当我尝试预测/测试模型时,它似乎只能识别4种图像类型中的1种(无论我如何更改模型,它都是同一类)。我的每个类的数据集非常小,但我确实使用imagegenerator来增加数据量。该模型应该能够识别图片上带有一些附加噪声的图像。你知道吗

我的挑战可以归结为:

  1. 少量数据。我每节课有100张图片。你知道吗
  2. 我的模型不应该找到具体的图形,而是在图片中找到更多的整体图案(有特定颜色的区域等等)。你知道吗
  3. 许多图片含有大量的白色和文字。我需要任何图像预处理,以帮助模型。你知道吗

我的模型是这样的:

model = Sequential()
model.add(Conv2D(32, (3, 3), padding='same', activation='relu', input_shape=(s1,s2,3), data_format = "channels_first"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(64, (3, 3), padding='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(50, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(4, activation='softmax'))

model.compile(loss='categorical_crossentropy',
          optimizer='Adam',
          metrics=['accuracy'])

img尺寸为250250,批次尺寸为16。你知道吗

检查acc和损耗曲线

acc curve

loss curve

你们有什么建议吗?你知道吗

提前谢谢!你知道吗


Tags: 数据模型图像addsizemodel图片activation
1条回答
网友
1楼 · 发布于 2024-03-29 02:24:53

这是典型的过度装修。你需要严格限制你的模式和/或使用迁移学习来打击这种行为。对于约束选项,可以增加“dropout”并添加l2正则化。根据我的经验,l2正则化确实使NN的问题变得困难。对于迁移学习,您可以使用resnet并只训练最后2-3层。你知道吗

然而,没有什么比拥有更多的数据点更好的了。你知道吗

相关问题 更多 >