我已经使用keras训练了CNN用于3类图像分类。结果不好,我试图了解分类器学到了什么,没有学到什么。它只给我输出1类。有没有办法检查在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”。我正在考虑仅在最后一层使用sigmoid和softmax。
答案 0 :(得分:2)
我认为您的网络不够深入。我还建议仅使用relu activation
,但最后一层应使用softmax
。
我不确定“网络暴露给哪些类”是什么意思。它已经暴露给您的训练数据的类别。如果您使用过生成器,则可以使用以下方法从数字中隐藏类名:
label_map = (generator.class_indices)
详细了解此here