也许是一个非常愚蠢的问题,但我找不到如何在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.我做错了什么?
答案 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'])