如何在Keras中使用categorical_hinge?

时间:2018-01-28 23:48:37

标签: keras keras-2 loss-function activation-function

也许是一个非常愚蠢的问题,但我找不到如何在Keras中使用categorical_hinge的例子。我做分类,我的目标是shape(,1),值为[-1,0,1]所以我有3个类别。使用功能API我已经设置了我的输出层:

  

output = Dense(1,name =' output',activation =' tanh',   kernel_initializer =' lecun_normal&#39)(输出1)

然后我申请:

  

model.compile(optimizer = adam,loss = {' output':' categorical_hinge'},   度量= ['准​​确性'])

结果是模型正在收敛但准确度趋于0.我做错了什么?

2 个答案:

答案 0 :(得分:1)

尽管[-1, 0, 1]是您的tanh激活函数的有效目标范围,但经验表明Keras模型在二进制输出中分类时效果不佳。考虑使用带有softmax分类器的三个单热点向量。如果我正确地解释了this bug report,则分类铰链将被构建为可以与一键矢量结合使用。

所以:将标签转换为一键式,然后将输出更改为以下内容:

output = Dense(3, name='output', activation='softmax', kernel_initializer='lecun_normal')(output1)

答案 1 :(得分:0)

使用:

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