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

使用TensorFlow搭建聊天机器人时张量形状不匹配报错如何解决

错误根因

你的训练数据和模型输入层的形状定义不匹配:

  1. 构造training数组时,你给每个特征向量bag额外套了一层列表:training.append([bag]),导致最终training的形状为三维(26,1,46),其中46是你的词表长度也就是特征维度。
  2. 定义输入层时,你用len(training[0])获取第二个维度的长度,此时training[0]是[bag],长度为1,所以模型输入层被定义为(?, 1),只接受第二个维度为1的输入。
  3. 训练时batch_size=8,每次喂给模型的批量数据形状为(8,1,46),和输入层期待的形状不符,就触发了这个报错。
修复方案

按照以下两步修改代码即可:

  • 调整训练数据构造逻辑,去掉特征向量外多余的列表嵌套
    找到代码行:
    training.append([bag])
    
    修改为:
    training.append(bag)
    
    修改后training的形状会变为二维(26, 46),符合全连接网络的输入要求。
  • 验证形状是否正确
    运行代码后观察print("shape",training.shape)的输出,确认返回shape (26, 46)即代表修改正确,再启动训练就不会出现形状不匹配的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:09:01