我在 keras 中使用预训练的 ResNet50 模型,并试图查看单个样本的预测
问题在于model.predict()返回不同的值,具体取决于我何时输入单个样本与更大数组中的相同样本。
我的模型输出一个 1x6 的概率向量
我在一个样本上运行:
案例一:model.predict(X_test[0:1])
并在多个样本的数组中:
案例B:model.predict(X_test[0:2])
的预测X_test[0]是
案例一:[9.999e-01, 4.228e-06, 8.278e-05, 1.121e-06, 1.061e-06, 2.958e-05]
案例B:[1.000e+00, 7.702e-13, 2.969e-13, 6.343e-11, 7.477e-14, 1.304e-10]
为什么预测不一样?(这里的预测是概率本身,而不是argmax)
根据要求,主要代码如下:
from keras.models import load_model
from my_utils import load_dataset
import numpy as np
X_train, Y_train, X_test, Y_test, classes = load_dataset()
model = load_model('model.h5') # ResNet50 with pre-trained weights
model.predict(X_test[0:1]) # Case A
model.predict(X_test[0:2]) # Case B
ResNet50 的模型架构可以在这里找到;与我正在使用的实现的一个区别是我使用的是 6 个类而不是 1000 个
谢谢!