如何检查Keras分类器/神经网络所训练的类?

3

我使用Keras训练了一个卷积神经网络来进行图像分类,其中有三个类别。结果不好,我正在试图理解分类器学到了什么以及没有学到什么。它只给出了一个类别的输出。在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'。

1个回答

2

我认为您的网络不够深。我建议只使用relu激活函数,除了最后一层应该使用softmax激活函数

我不确定您所说的“网络暴露给哪些类别”。它已经暴露于您的训练数据的类别。如果您使用了生成器,您可以通过以下方式从数字获得类名:

label_map = (generator.class_indices)

点击这里查看更多关于Keras功能模型获取类标签的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接