与keras的predict_generator和evaluate_generator不一致

时间:2019-02-19 15:51:00

标签: tensorflow keras

我训练了一个模型来预测实际值(回归),并希望对测试集进行预测以验证性能(平均绝对误差)。我使用生成器来生成测试集,然后再次创建它以确保获取真实值和预测时的一致性。如果我使用Evaluation_generator评估模型,则MAE为1.80。

gen = generator()
loss, mae = model.evaluate_generator(gen, 1000)
#This produces Test set MAE:  1.80

当我想根据预测值手动计算MAE时,可以使用以下方法从经过训练的模型中获得预测值:

gen = generator()
predictions = model.predict_generator(gen, 1000).flatten()

并获得基本的真值:

gen = generator()
y_test = np.zeros((1000))
i = 0
while i < 1000:
    p = next(gen)[1]
    y_test[i] = p
    i += 1

然后我用以下公式计算MAE:

# Manually compute MAE
np.mean(np.abs(predictions - y_test))

# This produces 13.74

产生的MAE为13.74,这与使用validate_generator计算的MAE有很大不同。我想念什么吗?

0 个答案:

没有答案