我对凯拉斯很陌生。我正在试着用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/