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

TensorFlow喂入数据形状不匹配报错求助(Kaggle泰坦尼克任务)

解决泰坦尼克预测任务中的TensorFlow维度不匹配报错

嘿,这个问题我之前踩过坑!咱们来快速搞定它:

报错根源

你遇到的 ValueError: Cannot feed value of shape (891,) for Tensor 'Placeholder_37:0', which has shape '(?, 1)' 核心是数据维度不匹配:

  • 你定义的Y占位符 shape=[None, 1] 要求输入是二维数组(行数任意,固定1列)
  • 但你通过 train_y_data = train.loc[:, "Survived"] 获取的是pandas Series,属于一维数组(形状为(891,)),两者维度对不上,所以TensorFlow抛出了错误。

快速修复方案

只需要把一维的标签数据转换成二维结构就行,最简单的方式是用reshape(-1, 1):

修改你的标签提取代码:

# 原代码
# train_y_data = train.loc[:, "Survived"]

# 修改后
train_y_data = train.loc[:, "Survived"].values.reshape(-1, 1)
  • .values 将pandas Series转换为numpy数组
  • .reshape(-1, 1) 让数组自动适配现有行数(这里是891),强制转为1列的二维结构,最终形状会变成(891, 1),完美匹配Y占位符的要求。

验证修改效果

你可以加一行代码确认形状是否正确:

print(train_y_data.shape)  # 输出应为 (891, 1)

这样再运行训练循环,维度不匹配的报错就会消失啦!

内容的提问来源于stack exchange,提问作者정등혁

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:17:07