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

5个EfficientNetB3堆叠模型预测时报输入张量数量不匹配错误如何解决

错误原因

你的堆叠集成模型定义了5个输入节点,分别对应5个EfficientNetB3子模型的输入。报错的核心原因是输入格式不符合模型要求:
你将zip打包后的测试集迭代后,把每个批次对应的5个输入张量全部平铺存入了X_pred列表。你的测试集batch size为2,总样本1214张对应约607个批次,最终X_pred列表总长度为607 * 5 = 3035个张量,调用predict时框架会把列表内的每个元素识别为一个独立输入,和模型要求的5个输入完全不匹配。

解决方案

方案1:直接传入TF数据集预测(推荐)

不需要把数据全部加载到内存,直接将zip后的数据集传给predict方法即可,框架会自动匹配多输入格式:

X = tf.data.Dataset.zip((dtest, dtest, dtest, dtest, dtest))
sub_df[label_cols] = stack_model.predict(X, verbose=1)

方案2:先加载全量数据到内存

如果有需要先把所有数据加载到本地内存,需要按输入维度分别拼接张量,最终传入长度为5的列表,每个元素对应一个子模型的全量输入:

X = tf.data.Dataset.zip((dtest, dtest, dtest, dtest, dtest))
# 分别收集5个输入的所有批次数据
input_collect = [[], [], [], [], []]
for batch in X:
    for idx in range(5):
        input_collect[idx].append(batch[idx])
# 各输入维度批次拼接,得到5个全量输入张量
X_pred = [tf.concat(batches, axis=0) for batches in input_collect]
sub_df[label_cols] = stack_model.predict(X_pred, verbose=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:06:01