5

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

输出=密集(1,名称='输出',激活='tanh',kernel_initializer='lecun_normal')(输出1)

然后我申请:

model.compile(optimizer=adam, loss={'output': 'categorical_hinge'}, metrics=['accuracy'])

结果是模型正在收敛,但准确度接近 0。我做错了什么?

4

2 回答 2

2

虽然[-1, 0, 1]是 tanh 激活函数的有效目标范围,但经验表明 Keras 模型不能很好地处理二进制输出中的分类。考虑使用三个带有 softmax 分类器的 one-hot 向量。如果我正确地解释了这个错误报告,那么无论如何构建分类铰链都是为了与单热向量一起工作。

所以:将您的标签转换为单键并将您的输出更改为以下内容:

output = Dense(3, name='output', activation='softmax', kernel_initializer='lecun_normal')(output1)
于 2018-07-23T08:52:27.040 回答
0

利用:

model.compile(optimizer=adam, loss="categorical_hinge", metrics=['accuracy'])
于 2018-07-11T15:34:48.973 回答