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

如何修复TensorFlow预测过程中出现的TypeError错误?

问题分析与解决

兄弟,你遇到的这个类型错误和数据类型没关系,问题出在你打印预测结果的方式上!

错误根源

model.predict(test_data)返回的是一个numpy数组(对应每个样本的softmax概率分布),而你在代码里写了:

print("Prediction: " + model.predict(test_data))

Python不允许直接把字符串和numpy数组用+做拼接操作,这才触发了TypeError: ufunc 'add' did not contain a loop with signature matching types这个错误。

解决方案

你可以换几种正确的方式来打印预测结果:

1. 用逗号分隔字符串和数组(最简单)

Python会自动帮你处理不同类型的拼接:

prediction = model.predict(test_data)
print("Prediction: ", prediction)

2. 使用f-string格式化输出

这种方式更清晰,可读性更强:

prediction = model.predict(test_data)
print(f"Prediction: {prediction}")

3. 输出预测的类别(而不是概率分布)

因为你的最后一层是softmax,输出的是每个类别的概率,如果你想直接看模型预测的类别,可以用np.argmax取每个样本概率最大的索引:

import numpy as np

predictions = model.predict(test_data)
predicted_classes = np.argmax(predictions, axis=1)
print("Predicted classes: ", predicted_classes)

补充说明

之前model.evaluate运行正常,是因为它返回的是两个单独的数值(测试损失和准确率),你把它们赋值给了变量,没有直接做字符串拼接操作,所以没触发错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:41:53