我对凯拉斯很陌生。我正在试着用ImageDataGenerator训练一个模型。我有一个非常大的训练图像保存在.npy格式。我想使用flow_from_directory(),所以按照文档中的建议存储了图像(每个类一个文件夹)。问题是这只适用于png、jpeg、tiff等,但不适用于我的.npy文件。
有没有什么方法可以使用这个函数或类似的东西,让我获得ImageDataGenerator提供的所有增强可能性?
非常感谢,谢谢你的帮助

最佳答案

是的,如果您愿意修改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函数中。

关于python - 将ImageDataGenerator与.npy格式的图像一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54101046/

10-08 22:31