用于多标签图像分类的CNN

时间:2019-10-25 09:03:38

标签: keras classification conv-neural-network loss-function

我将设计一个对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?或者,如果我编写自己的度量函数,这是否更有意义?

1 个答案:

答案 0 :(得分:0)

compile看起来不错。对于Multilabel网络,您还应该在最后sigmoid activation之前使用softmax not dense layer(不知道您在使用什么)

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