我如何在 Keras 中使用 categorical_hinge?
How do I use categorical_hinge in Keras?
也许是一个非常愚蠢的问题,但我找不到如何在 Keras 中使用 categorical_hinge 的示例。我进行分类,我的目标是 shape(,1)
,值为 [-1,0,1],所以我有 3 个类别。使用功能 API 我已经像这样设置了我的输出层:
output = Dense(1, name='output', activation='tanh',
kernel_initializer='lecun_normal')(output1)
那我申请:
model.compile(optimizer=adam, loss={'output': 'categorical_hinge'},
metrics=['accuracy'])
结果是模型正在收敛,但准确度趋于 0。我做错了什么?
使用:
model.compile(optimizer=adam, loss="categorical_hinge", metrics=['accuracy'])
虽然 [-1, 0, 1]
是 tanh 激活函数的有效目标范围,但经验告诉我们 Keras 模型不能很好地处理二进制输出中的分类。考虑改用三个 one-hot 向量和 softmax 分类器。如果我正确地解释 this bug report,分类铰链无论如何都可以与单热向量一起使用。
因此:将您的标签转换为单选,并将您的输出更改为以下内容:
output = Dense(3, name='output', activation='softmax', kernel_initializer='lecun_normal')(output1)
也许是一个非常愚蠢的问题,但我找不到如何在 Keras 中使用 categorical_hinge 的示例。我进行分类,我的目标是 shape(,1)
,值为 [-1,0,1],所以我有 3 个类别。使用功能 API 我已经像这样设置了我的输出层:
output = Dense(1, name='output', activation='tanh', kernel_initializer='lecun_normal')(output1)
那我申请:
model.compile(optimizer=adam, loss={'output': 'categorical_hinge'}, metrics=['accuracy'])
结果是模型正在收敛,但准确度趋于 0。我做错了什么?
使用:
model.compile(optimizer=adam, loss="categorical_hinge", metrics=['accuracy'])
虽然 [-1, 0, 1]
是 tanh 激活函数的有效目标范围,但经验告诉我们 Keras 模型不能很好地处理二进制输出中的分类。考虑改用三个 one-hot 向量和 softmax 分类器。如果我正确地解释 this bug report,分类铰链无论如何都可以与单热向量一起使用。
因此:将您的标签转换为单选,并将您的输出更改为以下内容:
output = Dense(3, name='output', activation='softmax', kernel_initializer='lecun_normal')(output1)