python - 将数字输出标签转换为 keras 中的分类向量
问题描述
我正在 Keras 中创建一个深度学习多分类模型,并且我已经将我的 outputlabel 训练集 y_train 从 1 到 14 的数值转换为看起来像这样的输出向量[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0] => representing the number 2
。这是我在 python (keras) 中使用的代码:
from keras.utils import to_categorical
y_train = to_categorical(y_train)
但是,因为它将这些输出标签转换为长度为 15 而不是 14 的向量,因为它也添加了零作为潜在输出。我原来的 numpy 数组 y_train 看起来像这样:[1,8,9,7,2,2,8...]
它应该被转换为长度为 14 而不是 15 的向量,以避免在训练模型时产生额外的损失。有没有一种简单的方法可以避免使用零作为潜在的输出类?
(num_classes = 14
作为 to_categorical 的参数给出错误消息)
解决方案
if your labels are from 1 to 14, try this simple trick:
y_train = to_categorical(np.asarray(y_train)-1)
推荐阅读
- amazon-s3 - 如何通过 CLI 关闭 AWS s3 存储桶中对象的加密?
- html - spring 中的等效布局(asp.net 核心)是什么?
- android - 在 Android 中获取未知 URL 内容
- c# - 无法通过 FormData Append 传递 HTML 内容
- c++ - 如何将这些串行端口的参数传递给函数
- node.js - 如何修复“TypeError:Buffer.from 不是函数”?
- python - 静态文件在 django nginx 中不起作用
- angular - 带选择的垂直角材料表
- c# - 使用 Microsoft.Azure.Cosmos 的 FeedResponse 时如何获取单个文档的 ETag
- javascript - 如何使用现有数组值中的动态键映射新数组而不循环?