gpt4 book ai didi

python - Keras:如何评估模型准确性(evaluate_generator 与 predict_generator)?

转载 作者:行者123 更新时间:2023-11-28 16:58:41 26 4
gpt4 key购买 nike

对于二元分类问题,我从 keras evaluate_generator()predict_generator() 获得了不同的模型精度:

def evaluate_model(model, generator, nBatches):
score = model.evaluate_generator(generator=generator, # Generator yielding tuples
steps=generator.samples//nBatches, # number of steps (batches of samples) to yield from generator before stopping
max_queue_size=10, # maximum size for the generator queue
workers=1, # maximum number of processes to spin up when using process based threading
use_multiprocessing=False, # whether to use process-based threading
verbose=0)
print("loss: %.3f - acc: %.3f" % (score[0], score[1]))

使用 evaluate_generator(),我得到的 acc 值高达 0.7

def evaluate_predcitions(model, generator):
predictions = model.predict_generator(generator=generator,
steps=generator.samples/nBatches,
max_queue_size=10,
workers=1,
use_multiprocessing=False,
verbose=0)

# Evaluate predictions
predictedClass = np.argmax(predictions, axis=1)
trueClass = generator.classes
classLabels = list(generator.class_indices.keys())

# Create confusion matrix
confusionMatrix = (confusion_matrix(
y_true=trueClass, # ground truth (correct) target values
y_pred=predictedClass)) # estimated targets as returned by a classifier
print(confusionMatrix)

使用 predict_generator(),我得到的 acc 值为 0.5。我将 acc 计算为 (TP+TN)/(TP+TN+FP+FN)


  • 我说得对吗,evaluate_generator()acc 是基于 TP+TN/(TP+TN+FP+FN)
  • 当我使用相同的数据和生成器时,acc 怎么会不同?

最佳答案

解决这个问题(evaluate_generate & predict_generator accuracies)。您只需在代码中做三件事:

(1) 集合

shuffle = False

test_datagen.flow_from_directorytest_datagen.flow_from_dataframe 中,

(2) 集合

workers = 0

model.predict_generator 和 (3) 中更改

trueClass = generator.classes[generator.index_array]

这些更改将使您的程序在主线程上执行,保留索引并与图像 ID 匹配。那么两者的准确度应该是一样的。

关于python - Keras:如何评估模型准确性(evaluate_generator 与 predict_generator)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55868975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com