我已经训练了一个CNN使用keras进行图像分类的3个班。结果很糟糕,我试图理解分类器学到了什么,没有学到什么。它只给了我一个类的输出。有没有办法检查分类器/神经网络在Keras中使用了哪些类?
例如,分类器的一个方法或一个属性,它可以告诉我网络已经暴露在哪个类中。有可能吗?
这是我的网络
classifier = Sequential()
classifier.add(Conv2D(64, (5, 5), input_shape = (256, 256, 3), activation='relu'))
classifier.add(Conv2D(64, (5, 5), activation = 'sigmoid'))
classifier.add(MaxPooling2D(pool_size = (3,3)))
classifier.add(Dense(units = 128, activation = 'relu'))
classifier.add(Dense(units = 3, activation = 'softmax'))
classifier.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])
我用了两个激活“relu”和“sigmoid”来做实验。我只想在最后一层使用乙状结肠和软组织。
最佳答案
我认为你的人脉不够深。我也建议只使用relu activation
除了最后一层应该使用softmax
之外。
我不知道你所说的“网络暴露在哪个类中”是什么意思。它已经暴露在你的训练数据中。如果您使用过生成器,则可以从具有以下内容的数字中获取类名:
label_map = (generator.class_indices)
有关此here