将ImageDataGenerator与.npy格式的图像一起使用

时间:2019-01-08 23:08:25

标签: python image keras deep-learning

我对Keras很陌生。我正在尝试使用ImageDataGenerator训练模型。我有大量以.npy格式保存的用于训练的图像。我想使用flow_from_directory(),所以我按照文档中的建议存储了图像(每个类一个文件夹)。问题在于这仅适用于png,jpeg,tiff等,但不适用于我的.npy文件。

有什么方法可以使用此功能或类似的功能,从而为我提供ImageDataGenerator提供的所有扩充功能吗?

非常感谢,感谢您的帮助

1 个答案:

答案 0 :(得分:0)

是的,如果您愿意改编ImageDataGenerator的源代码(实际上很容易阅读和理解),则有可能。看着keras-preprocessing github,我认为用您自己的load_img方法替换DirectoryIterator类中的load_array方法就可以了,该方法可以从磁盘而不是图像中读取.npy文件。 :

...
# build batch of image data
for i, j in enumerate(index_array):
     fname = self.filenames[j]
     ## Replace the code below with your own function
     img = load_img(os.path.join(self.directory, fname),
                    color_mode=self.color_mode,
                    target_size=self.target_size,
                    interpolation=self.interpolation)
     x = img_to_array(img, data_format=self.data_format)
 ...

因此,最少地,您将对该行进行以下更改:

...
# build batch of image data
for i, j in enumerate(index_array):
    fname = self.filenames[j]
    img = np.load(os.path.join(self.directory, fname))
...

但是您可能希望实现Keras的load_img实用程序功能还具有的其他一些逻辑,例如颜色模式,目标大小等,并将所有内容包装在您自己的load_array函数中。