You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Keras用to_categorical做独热编码时的索引越界错误

错误原因

tf.keras.utils.to_categorical 默认要求输入的类别索引从0开始计数。你的标签取值范围是15,最大索引值为5,当你设置`num_classes=5`时,生成的one-hot张量仅支持索引04,遇到标签值5时就会触发越界错误。

修复方案

方案1(推荐):将标签映射为0~4的取值范围

直接对原标签做减1操作,对齐0起始的索引要求,无冗余维度:

y = df.iloc[:,10].values
# 标签从1~5转为0~4
y = y - 1
y = tf.keras.utils.to_categorical(y, num_classes = 5)
y

方案2:调整类别数适配1起始的标签

如果需要保留原标签的数值含义,可以将num_classes设置为6,再剔除无意义的第0列:

y = df.iloc[:,10].values
y = tf.keras.utils.to_categorical(y, num_classes = 6)
# 剔除索引0对应的空列,得到5维one-hot编码
y = y[:, 1:]
y

内容的提问来源于stack exchange,提问作者emmasa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 21:54:04