训练文本摘要模型加载后触发TextVectorization输入维度错误求助
问题解决方法
问题根源
TextVectorization层要求输入为一维字符串张量(形状如(batch_size,)或(batch_size,1)),但你当前传入的是形状为(None,7)的二维张量,每个样本包含7个元素,不符合层的输入要求,导致报错。
具体修复步骤
提取正确的输入文本列
检查推理时传入的数据,大概率是误将数据集的多列(比如文本列+情感标签列等)一起传入。只需要提取出用于生成摘要的单文本列即可:# 假设你的数据存储在DataFrame中,text_column是待摘要的文本列名 input_text = df['text_column'].values # 此时形状为(n_samples,),符合要求 predictions = model.predict(input_text)拼接多文本片段(如果训练时是拼接输入)
如果训练时你是将7个文本片段拼接成单个字符串输入模型,那推理时也要执行相同的预处理:import numpy as np def concat_text_samples(input_data): # 将每个样本的7个字符串拼接为单个文本 return np.array([' '.join(sample) for sample in input_data]) # 处理输入后再传入模型 processed_input = concat_text_samples(your_7d_input_data) predictions = model.predict(processed_input)验证模型输入形状
打印模型的输入形状,确认训练与推理的输入结构一致:print(model.input_shape)如果输出为
(None,)或(None,1),则必须保证推理输入匹配该形状;若训练时输入层为(None,7),则需检查训练阶段TextVectorization的配置是否合理(文本摘要场景通常不需要多列输入)。
内容的提问来源于stack exchange,提问作者Dilshan Boteju
相关产品推荐
相关产品推荐

