Keras模型输入维度不匹配:期望(None,156)实际为(None,256)
问题根因
你的gen_encoder编码器模型在训练时定义的输入维度为(None, 156),要求单条样本的编码长度固定为156,但你当前encode_unique函数输出的编码长度为256,维度不匹配触发报错。从你打印的编码结果可以看到,末尾大量连续的27就是填充值,说明编码阶段的填充长度和模型训练时使用的填充长度不一致。
修复步骤
- 先确认模型训练阶段设置的最大序列长度:确认训练时对输入做填充/截断的目标长度是156,同时检查你当前
encode_unique函数中设置的最大序列长度是否错误配置为256 - 修改
encode_unique函数的逻辑:将所有输入编码的长度统一调整为156,长度不足的补填充位,超过156的直接截断即可 - 临时测试可直接在
generate_from_encoder_input函数中encoder_input = encoder_input.reshape(1,-1)代码前添加切片逻辑:encoder_input = encoder_input[:156],截断前156位输入即可快速验证问题是否解决
内容的提问来源于stack exchange,提问作者the_muton
相关产品推荐
相关产品推荐

