首页 > 解决方案 > 什么 Keras 损失函数用于三元分类?

问题描述

我的 LSTM 输入样本由 [-1, 1] 范围内的实数组成,目标(类别)是 -1、0 和 1。

我为损失函数选择了 sparse_categorical_crossentropy,但它似乎不支持负数 - 当我开始训练时,它显示“InvalidArgumentError:收到的标签值 -1 超出 [0, 1) 的有效范围”。

我应该用什么损失函数代替这个任务?

我也不明白为什么它说 [0, 1) 这意味着一个等于或大于零但小于 1 的数字 AFAIK 但我读过的关于 sparse_categorical_crossentropy 的内容说它是为了支持任何整数。

标签: pythontensorflowkerascategorical-dataloss-function

解决方案


您的目标必须是从0to的整数num_classes - 1,它们不能是负数,因为您正在进行分类。这是多类分类的一种标准,你必须遵循它。

还要确保你的最后一层输出 3 个带有 softmax 激活的数字,这将代表类的分布。


推荐阅读