我正在Keras中使用ImageDataGenerator(),我想获取我的整个测试数据的标签。
现在我使用下面的代码来完成这个任务:
test_batches = ImageDataGenerator().flow_from_directory(...)
test_labels = []
for i in range(0,3):
test_labels.extend(np.array(test_batches[i][1]))
字符串
然而,这段代码只能工作,因为我知道我总共有150张图像,我的批量大小被定义为50。
此外,使用:
imgs, labels = next(test_batches)
型
正如在类似的帖子中所建议的那样,只返回一个批次的标签,而不是整个数据集。因此,我想知道是否有比我上面使用的方法更有效的方法来做到这一点。
5条答案
按热度按时间jjjwad0x1#
你可以简单地从DirectoryIterator中获取一个字典,其中包含了标签和索引的独热编码。然后删除键将给予所有的标签。
字符串
14ifxucb2#
好吧-当你知道
batch_size
时,你可以从flow_from_directory
对象中获得图像的数量:字符串
mctunoxg3#
如果你只是想要标签,你可以直接使用
字符串
但是有时候你想要这个值,那么你可以这样做:validation_x = []
型
kgsdhlau4#
我知道
flow
方法允许传递图像和标签,但是你需要在内存中已经加载了图像。我从来没有在
flow_from_directory
上试过,但是如果你看看documentation,他们似乎要求你有一个主目录和一个标签。j1dl9f465#
从ImageDataGenerator()获取独热编码标签的一种更简单的方法
字符串