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

TensorFlow模型输入数据时出现形状不匹配错误求助

解决TensorFlow模型输入形状不匹配问题

错误原因分析

从报错信息能直接定位两个核心问题:

  1. 模型的第一个全连接层期望输入特征数为13,但你当前传入的test数组只有8个特征,特征数量不匹配。
  2. 你尝试的reshape(-1,1)是错误的:它会把8个元素拆成8个单特征样本,输入形状变成(8,1),完全不符合模型对13特征的要求。

解决步骤

1. 匹配模型输入特征数

首先确认你训练模型时使用的输入是13个特征,所以预测时必须传入13个特征的数据。如果是数据遗漏,补全缺失的5个特征值(示例中用0占位,实际替换为对应数据):

# 补全到13个特征,与模型训练时的输入维度一致
test = np.array([377, 24459, 7023844000, 305, 319, 281, -24, -7.87, 0, 0, 0, 0, 0])

2. 正确调整输入形状

模型接受的输入是批量样本,格式为(batch_size, feature_num)。单个样本需要转换成(1, 13)的形状,用reshape(1, -1)自动匹配特征数:

# 将一维特征数组转为(1, 13)的批量输入格式
input_data = test.reshape(1, -1)

3. 优化代码结构

把模型加载放在循环外,避免每次循环重复加载模型浪费资源。

修改后的完整代码

import tensorflow as tf
import openpyxl as xl
import numpy as np

# 1. 加载模型(仅执行一次)
sigmoid = tf.keras.models.load_model("C:\\Users\\SMTL\\Desktop\\python projects\\AI\\models\\sigmoid")

# 2. 准备符合要求的输入数据(13个特征)
test = np.array([377, 24459, 7023844000, 305, 319, 281, -24, -7.87, 0, 0, 0, 0, 0])
print("输入特征形状:", test.shape)  # 输出 (13,)

while True:   
    wb = xl.load_workbook(filename = 'C:\\tbp.xlsx')
    sheet = wb.active
    datatobepredicted = [None] * 8
    predicteddata = [[None]*5]*1585
    
    # 3. 调整输入形状并预测
    input_data = test.reshape(1, -1)
    print(sigmoid.predict(input_data))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:05:14