简体   繁体   English

如何为Keras中的DataGenerator选择图像进行预测?

[英]How to selecting images for DataGenerator in Keras for prediction?

I load the images in the following format for bulk predictions. 我以以下格式加载图像以进行批量预测。 This method works fine if all images are in a parent folder as follows : 如果所有图像都位于父文件夹中,则此方法可以正常工作,如下所示:

..Parent Folder > Sub folder > All image files. ..父文件夹>子文件夹>所有图像文件。

So I need to set my 'directory' = 'Parent Folder'. 所以我需要设置我的“目录” =“父文件夹”。 It reads all the sub folders inside 'Parent folder' and their images. 它读取“父文件夹”中的所有子文件夹及其图像。

predict_datagen = ImageDataGenerator(rescale = 1./255)
            predict_generator = predict_datagen.flow_from_directory(directory = parent_image_folder,
                                                target_size = (size, size),
                                                batch_size = batch_size,
                                                class_mode = None, 
                                                shuffle = False)

predict_generator.reset()
            predict_filenames = predict_generator.filenames
            predictions = model.predict_generator(predict_generator, verbose=1, steps = int(len(predict_generator.filenames) / batch_size)+1)

But in my project, I need to load only the images in selected subfolders folders in 'Parent folder'. 但是在我的项目中,我只需要加载“父文件夹”中所选子文件夹文件夹中的图像。 I could achieve it by copying the selected folders into a separate folder(new parent folder). 我可以通过将选定的文件夹复制到单独的文件夹(新的父文件夹)中来实现。 But is there any other better method? 但是还有其他更好的方法吗?

There is no way to do this without modifying ImageDataGenerator. 如果不修改ImageDataGenerator,就无法做到这一点。 If you're on linux, the best way I can think of is to create a separate parent directory, and then create symlinks for the selected subfolders. 如果您使用的是Linux,我能想到的最好方法是创建一个单独的父目录,然后为选定的子文件夹创建符号链接。 Make sure to set follow_links=True in flow_from_directory . 确保在flow_from_directory设置follow_links=True

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM