我正在使用Keras Sequential模型处理一个多类分类问题。在我的数据集中,输出类具有以下值之一:CCD_ 1。
是的,我已经尝试过对输出进行热编码,并在输出层中使用categorical_crossentropy
作为损失函数和softmax
。
然而,我认为softmax和分类交叉熵在我的情况下不是正确的选择。在我的数据集中,输出类具有一定的"离散性"(或规模(。1
类是"最差的",5
类是"最好的"。
假设在特定输入上,模型预测2
,而真实类为1
,则与模型预测类5
,而真实类别为1
时相比,这是一个更好的预测。
我希望损失函数将这些"小错误"考虑在内,而不是以相同的方式处理所有错误。
总之,我想知道对于给定的问题,在损失函数和输出层激活方面我有什么选择
根据您的要求,我强烈建议您创建损失函数。这样你就可以按照你想要的方式处理结果。基本上,在创建损失函数时,你只需要y_pred和y_true,然后将其作为张量返回。
还值得注意的是,当创建任何自定义丢失、优化器和层时。只允许使用Tensor Flow后端操作,因为使用类似Numpy的库会导致编译错误。
这是在您的模型中执行自定义训练时Tensor Flow中文档的链接。