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

TensorFlow.Keras训练报错:输入形状显示为()但实际为(768,8)

问题解决:输入形状不匹配报错的根源及修复方案

嘿,我一眼就揪出问题所在啦!你的输入数据形状其实完全没问题——X.shape=(768,8)完美匹配模型第一层input_shape=(8,)的要求,y.shape=(768,1)也符合二分类任务的标签格式,报错的锅根本不在数据维度上。

错误核心:validation_data参数用错了

你在model.fit()里写了validation_data = 0.1,但这个参数的正确用法是传入包含验证集特征和标签的元组(比如(X_val, y_val));如果你只是想从训练集里自动拆分出10%作为验证集,应该用的是validation_split=0.1这个参数,而不是validation_data。

当你把validation_data设成单独的数值0.1时,Keras会误把这个标量当成输入数据,它的形状是(),自然和模型期望的2维输入不匹配,才会弹出这个让你困惑的报错。

修正后的代码

只需要修改fit方法的参数即可:

model.fit(X, y, batch_size = 16, epochs = 1, validation_split = 0.1)

额外补充:手动指定验证集的正确方式

如果你已经自己拆分好了训练集和验证集,validation_data的正确用法是这样的:

# 先拆分数据(示例)
from sklearn.model_selection import train_test_split
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.1, random_state=20)

# 传入验证集元组
model.fit(X_train, y_train, batch_size = 16, epochs = 1, validation_data=(X_val, y_val))

这样运行起来就不会有问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 21:17:59