Да, это возможно, если вы хотите адаптировать исходный код ImageDataGenerator (который на самом деле довольно прост для чтения и понимания). Глядя на github с предварительной обработкой keras, я думаю, что было бы достаточно заменить метод 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
.