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

Keras多输出模型训练标签格式错误,求正确格式

解决Keras多输出模型的标签格式错误问题

你的问题出在标签格式上:Keras多输出模型(用字典命名输出时),不接受列表套字典的标签格式,而是要求标签是一个顶层字典,每个键对应输出层的名称(比如"x"和"y"),每个值是对应所有样本的标签数组(形状为(样本数量, 类别数)的NumPy数组)。

正确的标签格式转换步骤

假设你原本的标签列表是这样的:

labels_list = [
    {"x":[0,0,1,0,0],"y":[1,0,0,0,0]},
    # 其他样本...
]

你需要把它转换成顶层字典+NumPy数组的形式:

import numpy as np

# 提取所有x的标签,转为形状(样本数,5)的数组
x_labels = np.array([item["x"] for item in labels_list])
# 提取所有y的标签,转为形状(样本数,5)的数组
y_labels = np.array([item["y"] for item in labels_list])

# 最终传入model.fit的标签
labels = {"x": x_labels, "y": y_labels}

为什么原来的格式会报错?

你之前用的列表套字典格式,会让Keras错误地将每个小字典当成一个独立的"样本集合",导致解析出来的样本维度混乱,最终触发"样本数不匹配"的错误。而顶层字典的格式,能明确告诉Keras:每个键对应一个输出的完整标签数据集,所有数据集的样本数保持一致。

验证要点

确保training_data的样本数(即training_data.shape[0])和x_labels.shape[0]、y_labels.shape[0]完全相等,这样就能避免样本数不匹配的提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:05:07