我正在处理一个多类分类问题,使用Keras序列模型。在我的数据集中,输出类具有以下值之一:
(1, 2, 3, 4, 5)
是的,我已经尝试过对输出进行热编码,并使用categorical_crossentropy
作为丢失函数,在输出层中使用softmax
然而,我认为softmax和分类交叉熵在我的案例中不是正确的选择。在我的数据集中,输出类具有某种“离散性”(或规模)。类1
是“最差的”,类5
是“最好的”
假设在一个特定的输入上,模型预测2
,而真实的类是1
,那么当模型预测类5
,真实的类是1
时,它是一个更好的预测
我希望损失函数将这些“小错误”考虑在内,而不是以相同的方式处理所有错误
总之,我想知道对于给定的问题,在损失函数和输出层激活方面,我的选择是什么。
根据您的要求,我强烈建议您创建损失函数。 通过这种方式,您可以按照您希望的方式处理结果。基本上,在创建损失函数时,您只需要y\u pred和y\u true,然后将其作为张量返回
还值得注意的是,在创建任何自定义损失时,优化器和层。只允许使用Tensor Flow后端操作,因为使用Numpy等库将导致编译错误
以下是在您的模型中进行自定义训练时使用Tensor Flow中的文档的link
相关问题 更多 >
编程相关推荐