gpt4 book ai didi

python - 使用 Keras ImageDataGenerator 预测进行索引会引发不可散列类型错误

转载 作者:行者123 更新时间:2023-12-01 01:43:03 26 4
gpt4 key购买 nike

我为 ImageDataGenerator 创建了一个分类器,使用 flow_from_directory 创建,例如:

training_imGenProp = ImageDataGenerator(
rescale=1. / 255,
width_shift_range=0.02,
height_shift_range=0.02,
)

training_imGen = training_imGenProp.flow_from_directory(
'Location/to/train/images',
target_size=(74, 448),
batch_size=batchSize,
class_mode='binary',
)

运行时,我在以下代码片段的最后一行中收到 TypeError: unhashable type: 'numpy.ndarray' :

predictions = classifier.predict_generator(testing_imGen)
predictions = (predictions >= 0.5).astype(int)
label_map = (training_imGen.class_indices)
inverted_label_map = dict((v, k) for k, v in label_map.items()) #flip k,v
predictions = [label_map[k] for k in predictions]

可能是什么原因造成的?

此外,我应该如何根据该分类器结果生成混淆矩阵?

这个:

tn, fp, fn, tp = confusion_matrix(label_map, predictions).ravel()

引发错误ValueError:发现输入变量的样本数量不一致:[2,(663, 1)]

最佳答案

因此,经过长时间的研究,问题出在最后一个列表理解中,因为 predictions 是一个列 numpy 数组,例如 [[1],[1],[0], ...,[0]]

所以只需要访问其中的整数值:

textual_predictions = [s_label_map[k] for k in predictions.T[0]]

此外,创建混淆矩阵时还出现另一个错误,该错误输入了错误的变量:

tn, fp, fn, tp = confusion_matrix(testing_imGen.classes, predictions.T[0]).ravel()

关于python - 使用 Keras ImageDataGenerator 预测进行索引会引发不可散列类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51682648/

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