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

TensorFlow融合文本与数值特征报错:模型期望2个输入仅收到1个张量

错误根因

你定义的Keras模型为双输入结构,要求同时传入两类独立的输入张量,但你训练时提前把NLP特征和数值特征拼接成了单个张量传入,和模型预期的输入数量不匹配,因此触发报错。

修复步骤
  • 第一步:删除提前拼接特征的冗余代码
    删掉以下两行,特征拼接逻辑已经在模型内部通过tf.concat([nlp_out, meta_input], 1)实现,不需要提前手动拼接:
    data_train = np.concatenate((nlp_train,numeric_train), axis=1)
    data_test = np.concatenate((nlp_test,numeric_test), axis=1)
    
  • 第二步:调整model.fit的入参格式
    按照模型定义时的输入顺序(先NLP特征、再数值特征),传入由两个数组组成的列表作为输入,修改后的fit代码如下:
    print('Training model...')
    r = model.fit(
      [nlp_train, numeric_train], # 按顺序传入两个独立输入
      y_train,
      epochs=5, 
      validation_data=([nlp_test, numeric_test], y_test) # 验证集输入也调整为列表格式
    )
    
注意事项

两个输入的顺序必须和你定义Model(inputs=[nlp_input, meta_input], outputs=[x])时的顺序严格对应,不能调换,否则会出现特征错位的问题。你代码里nlp_train和numeric_train的样本数已经对齐,不需要额外调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:24:08