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

如何向已训练的TensorFlow模型传入自定义输入并查看输出?

TensorFlow模型传入自定义输入获取预测结果的实现方法

训练完成后直接调用模型的predict()方法即可完成推理,需要注意输入数据的形状必须和模型训练时要求的输入维度匹配,你当前的模型输入要求每个样本包含3个特征,输入张量的形状需要满足(批次大小, 3)的格式,哪怕只预测单个样本也不能直接传入一维列表。

具体操作代码可以直接追加在你现有训练代码的末尾:

import numpy as np

# 自定义单样本输入
single_sample = [100, 2, 4]
# 转换为numpy数组并调整形状为(1, 3),对应1个样本、每个样本3个特征
input_data = np.array(single_sample).reshape(1, -1)

# 执行预测,verbose=0用于关闭预测过程的日志打印
pred_result = model.predict(input_data, verbose=0)

# 输出结果
print(f"输入{single_sample}的sigmoid预测概率:{pred_result[0][0]:.4f}")
# 二分类场景下取0.5为阈值,输出最终分类结果
pred_label = 1 if pred_result[0][0] >= 0.5 else 0
print(f"阈值0.5下的分类结果:{pred_label}")

批量预测多个自定义样本

如果需要一次性推理多个样本,直接把多个样本组成二维列表传入即可,不需要额外修改逻辑:

# 多个自定义样本,每个样本3个特征
batch_samples = [
    [100, 2, 4],
    [5, 30, 22],
    [1, 0, 49]
]
batch_input = np.array(batch_samples)
batch_pred = model.predict(batch_input, verbose=0)
# 打印每个样本的结果
for sample, pred in zip(batch_samples, batch_pred):
    print(f"输入{sample},预测概率{pred[0]:.4f},分类{1 if pred[0]>=0.5 else 0}")

注意事项

  • 禁止直接传入一维列表如[100,2,4]调用predict,会触发维度不匹配报错,必须保证输入最后一维的长度和模型定义的input_shape一致(当前模型为3)
  • 你当前训练集的特征取值范围是0-50,传入远超出这个范围的数值(比如示例里的100)时,预测结果的可信度会大幅降低,属于正常的分布偏移问题,不是代码错误
  • 预测时如果不需要看进度条日志,加上verbose=0参数即可关闭输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:31:06