调用model.fit时出现输入与层不兼容错误的原因及解决办法
问题解决:输入形状不匹配错误
问题根源
你的输入张量token_tensor多了一个额外维度(实际形状为(10,1,512)),但模型的Embedding层期望输入是二维张量(batch_size, 512)——也就是每个样本是长度为512的一维序列,而非三维结构。
解决方法
直接去掉输入中长度为1的冗余维度,可通过以下两种方式实现:
方法1:TensorFlow环境下处理
在调用model.fit前添加代码:
import tensorflow as tf token_tensor = tf.squeeze(token_tensor, axis=1)
方法2:NumPy数组环境下处理
如果token_tensor是NumPy格式,可直接用数组自带方法:
token_tensor = token_tensor.squeeze(axis=1)
验证修改效果
处理后打印输入形状确认:
print(token_tensor.shape)
输出应为(None, 512)(None对应批量大小,此处为10),此时再运行model.fit即可匹配模型输入要求。
内容的提问来源于stack exchange,提问作者Debbie
相关产品推荐
相关产品推荐

