Используя код здесь https://keras.io/api/utils/python_utils/#sequence -class , я закодировал собственный DataGenerator
.
# Here, `x_set` is list of path to the images
# and `y_set` are the associated classes.
class DataGenerator(Sequence):
def __init__(self, x_set, y_set, batch_size):
self.x, self.y = x_set, y_set
self.batch_size = batch_size
def __len__(self):
return math.ceil(len(self.x) / self.batch_size)
def __getitem__(self, idx):
batch_x = self.x[idx * self.batch_size:(idx + 1) *
self.batch_size]
batch_y = self.y[idx * self.batch_size:(idx + 1) *
self.batch_size]
return np.array([
resize(imread(file_name), (224, 224))
for file_name in batch_x]), np.array(batch_y)
Теперь мне интересно, как применить генератор данных к моему обучению данные и данные проверки? У меня есть X_train
и X_val
, которые представляют собой списки, содержащие пути изображений к моим файлам изображений, и y_train
и y_val
, которые представляют собой метки с горячим кодированием.
Могу ли я затем использовать этот код?
training_generator = DataGenerator(X_train, y_train)
validation_generator = DataGenerator(X_val, y_val)
А потом подогнать модель?
model.fit_generator(generator=training_generator,
validation_data=validation_generator)