python - 什么 Keras 损失函数用于三元分类?
问题描述
我的 LSTM 输入样本由 [-1, 1] 范围内的实数组成,目标(类别)是 -1、0 和 1。
我为损失函数选择了 sparse_categorical_crossentropy,但它似乎不支持负数 - 当我开始训练时,它显示“InvalidArgumentError:收到的标签值 -1 超出 [0, 1) 的有效范围”。
我应该用什么损失函数代替这个任务?
我也不明白为什么它说 [0, 1) 这意味着一个等于或大于零但小于 1 的数字 AFAIK 但我读过的关于 sparse_categorical_crossentropy 的内容说它是为了支持任何整数。
解决方案
您的目标必须是从0
to的整数num_classes - 1
,它们不能是负数,因为您正在进行分类。这是多类分类的一种标准,你必须遵循它。
还要确保你的最后一层输出 3 个带有 softmax 激活的数字,这将代表类的分布。
推荐阅读
- javascript - 为 Google Chart DataTable 转换行数据中的字符串数据
- assembly - 如何在汇编中从用户输入多位数字?
- android - 通过 Android 推送通知发送消息是否是幂等的(恰好一次发送)?
- javascript - 如何使用 *ngONinit 将 5 个差异列的值总结为 TOTAL?
- amazon-dynamodb - 试图做最好的方法来设计模式或表并找到键
- html - 创建具有多个边框的按钮
- javascript - 返回具有多个值的对象数组中除第一次出现之外的所有重复项
- sql - 将 XML 解析为 Oracle SQL
- histogram - Circlize plot - 具有相同 Y 轴的直方图
- python - dash_table 显示空白行