【发布时间】:2021-01-20 16:22:45
【问题描述】:
我正在编写一个程序,用于将图像分为两类:“Wires”和“non-Wires”。我手动标记了大约 5000 张显微镜图像,示例:
非有线
电线
我使用的神经网络改编自“Deep Learning with Python”,关于卷积网络的章节(我认为卷积网络在这里没有必要,因为没有明显的层次结构;密集网络应该更合适):
model = models.Sequential()
model.add(layers.Dense(32, activation='relu',input_shape=(200,200,3)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Dense(32, activation='relu'))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Flatten())
model.add(layers.Dense(256, activation='relu'))
model.add(layers.Dense(2, activation='softmax'))
但是,在使用网络参数时,经过 10 轮训练后的测试准确率不会超过 92%。训练图像包含大约 1/3 的电线,2/3 的非电线。我的问题:您是否发现这种神经网络设计中有任何明显的错误会抑制准确性,或者您认为我受到图像质量的限制?我有大约 4000 个训练图像和 1000 个测试图像。
【问题讨论】:
-
图片的大小是多少。从我所看到的情况来看,与图像中的像素总数相比,感兴趣区域中的像素数似乎很小。不同意使用卷积网络,但您的图像太小而无法说明太多。
-
您检查了错误分类的图像吗?我也不同意 CNN 不适合的说法。卷积层提供了一些位置不变性,我相信您希望在这个用例中使用它。
-
图片尺寸为 200x200x3。关于位置不变性:图像以可能的电线为中心。但是,是的,我会再次尝试 convnets - 谢谢!
标签: python tensorflow keras neural-network image-classification