问题:我正在训练一个多标签图像识别模型。因此,我的图像与多个y标签相关联。这与ImageDataGenerator的方便keras方法“flow_from_directory”相冲突,其中每个图像都应该位于相应标签(https://keras.io/preprocessing/image/)的文件夹中。
解决方法:目前,我正在将所有图像读入一个numpy数组,并从中使用“flow”函数。但这会导致大量内存负载和缓慢的读取过程。
问题:是否有方法使用“flow_from_directory”方法并手动提供(多个)类标签?
更新:我最终扩展了多标签情况下的DirectoryIterator类。现在,您可以将属性“class_mode”设置为值“multilabel”,并提供一个字典“multlabel_classes”,将文件名映射到其标签。代码:https://github.com/tholor/keras/commit/29ceafca3c4792cb480829c5768510e4bdb489c5
您可以简单地使用
flow_from_directory
,并按照以下方式将其扩展到一个多类:其中
multiclasses_getter
为图像分配多类向量/多类表示。请注意x
和y
不是单个示例,而是一批示例,因此应该将其包含在multiclasses_getter
设计中。您可以编写一个自定义生成器类,从目录中读取文件并应用标签。该自定义生成器还可以接受ImageDataGenerator实例,该实例将使用flow()生成批处理。
我在想象这样的事情:
然后简单地说:
*免责声明:我还没有实际测试过,但在理论上应该有效。
相关问题 更多 >
编程相关推荐