如何使用 keras flow_from_directory shuffled 方法检索图像的文件名?
Posted
技术标签:
【中文标题】如何使用 keras flow_from_directory shuffled 方法检索图像的文件名?【英文标题】:How to retrieve the filename of an image with keras flow_from_directory shuffled method? 【发布时间】:2017-06-26 09:49:03 【问题描述】:如果我不打乱我的文件,我可以使用generator.filenames
获取文件名。但是当生成器打乱图像时,文件名没有打乱,所以我不知道如何取回文件名。
【问题讨论】:
无论是否使用 shuffle 都能以与生成器相同的顺序获取文件名将非常有用。训练后,我喜欢通过查看存在误报、真阳性等的图像来尝试了解我的模型“看到”了什么。为此使用训练生成器中的文件名会更简单、更便宜,但是现在我能想到的唯一方法是创建一个单独的“评估”生成器,它有 shuffle=False。 【参考方案1】:我认为这里唯一的选择是不打乱文件。我自己一直在想这个,这是我在文档中唯一能找到的。看起来很奇怪而且不正确...
【讨论】:
【参考方案2】:在内部,DirectoryIterator
将遍历 index_arrray
,当您要求它时,它会被打乱。
您只需要使用批处理的当前索引来索引文件名数组:
it = ImageDataGenerator().flow_from_directory(shuffle=True,...)
for img in it:
idx = (it.batch_index - 1) * it.batch_size
fnames = [it.filenames[it.index_array[i]] for i in range(idx, idx + it.batch_size)]
【讨论】:
以上是关于如何使用 keras flow_from_directory shuffled 方法检索图像的文件名?的主要内容,如果未能解决你的问题,请参考以下文章
keras 入门整理 如何shuffle,如何使用fit_generator
如何使用 Tensorflow 张量设置 Keras 层的输入?