用于多标签图像分类的CNN



我会设计一个对8x8图像块进行分类的CNN。具体地说,我使num_classes等于40,并且每个图像可以仅与一个类或两个类、三个类或四个类相关联,依此类推,甚至可以与所有40个类相联系。

我的问题与损失函数和度量有关:事实上,我想强制我的CNN返回K最有信心的类,如果其中至少有一个是正确的,那么我希望准确性增加

例如,假设更简单的情况num_classes=4K=2:

true = [1 0 0 0]; predicted = [1 0 1 0] OK
true = [1 1 0 0]; predicted = [0 0 1 1] WRONG

所以,我已经测试了下面的代码行,但它不是我想要的。

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

我应该使用哪个lossmetric?或者,如果我写自己的度量函数,它会更有意义吗?

您的compile看起来不错。对于Multilabel网络,您还应该使用sigmoid activation而不是softmax到您的上一个dense layer(不知道您在使用什么(

x = Dense(40, activation='sigmoid')

最新更新