提问人:Harun Harman 提问时间:8/23/2023 最后编辑:Harun Harman 更新时间:8/24/2023 访问量:48
使用 CNN 进行二进制图像分类,但一个类的 Precision-Recall-F1 分数为 0
Binary Image classification with CNN, but Precision-Recall-F1 Score is 0 for one class
问:
我正在尝试对给定图像是否为木桩进行分类。所以我的课程是木头和none_wood。None_wood类包含不同的照片,包括文件、数字、人物等。我的训练集由 4655 个木头和 4566 个none_wood图像组成(我使用 augmentor 来增加none_wood类的大小),测试集包括每个类的 1139 张图像。
我的模型如下:
classifier = Sequential()
classifier.add(Convolution2D(32,(3,3),input_shape = (175,130,3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2,2)))
classifier.add(Convolution2D(64,(3,3),input_shape = (175,130,3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2,2)))
classifier.add(Flatten())
classifier.add(Dense(128, activation = 'relu'))
classifier.add(Dense(1, activation = 'sigmoid'))
classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
我尝试了最多 10 个不同的 epoch,我添加了回调以防止过度拟合,我用 ImageDataGenerator 进行了数据增强,数据集中没有不平衡,我尝试了不同的优化器,我尝试了不同的损失函数,但没有变化。
你有什么建议?我不明白确切的问题是什么,为什么混淆矩阵中的 FP 和 TN 值为 0?我需要什么来提高准确性?它是 0.5 :(
更新:我的测试集目录有两个子目录,称为 wood none_wood。我把它变成了一个testSet目录,并将所有测试图像放在其中。这一次,精度-召回-f1 分数-准确率,一切都是 1.00。伙计们,我错过了什么?????
答: 暂无答案
下一个:拥抱脸 K 折叠
评论
classifier.add(Convolution2D(64,(3,3),input_shape = (175,130,3), activation = 'relu'))
classifier.add(Convolution2D(64,(3,3),input_shape = (175,130,3), activation = 'relu'))
classifier.add(Convolution2D(64,(3,3), activation = 'relu'))