【发布时间】:2018-03-01 20:28:05
【问题描述】:
我正在一个包含两个类的大型图像数据集上训练一个 CNN,并且我已经对我的验证类 (y_test) 进行了一次热编码:
y_test = to_categorical(y_test, num_classes=2)
我想将这些与我的分类器所做的预测进行比较,我也有一个热门编码如下:
y_pred = model.predict_classes(x_test)
y_pred = to_categorical(y_pred, num_classes=2)
我想要通过这种比较来找到我的分类器出错的地方,并将分类错误的图像保存在一个新文件夹中。但我认为我根本没有做正确的比较:
for i in range(0, len(y_test)):
if y_pred[i].any() != y_test[i].any():
image = x_test_copy[i]
path = 'path'
cv2.imwrite(os.path.join(path , str(i)+'.jpg'), image)
有人知道我做错了什么吗?
【问题讨论】:
-
也许可以试试
(y_pred[i] != y_test[i]).any()? -
你在使用 Keras
to_categorical? -
@rayryeng 是的,我正在使用 Keras
-
@saremisona 好的。谢谢。为了完整性,我已经重新标记了您的问题。顺便说一句,当您可以只比较实际标签本身时,我不确定为什么要比较 one-hot 编码向量。它更简单,因为由于 one-hot 编码,您只比较一个整数而不是整数数组。
-
你真是太好了,谢谢!
标签: python opencv machine-learning keras one-hot-encoding