Пользовательский генератор данных для изображений занимает много времени - PullRequest
0 голосов
/ 16 июня 2020

Я сгенерировал это data_generator:

def data_generator(samples, batch_size, shuffle_data = True, resize=224):
  num_samples = len(samples)
  while True:
    random.shuffle(samples)

    for offset in range(0, num_samples, batch_size):
      batch_samples = samples[offset: offset + batch_size]

      X_train = []
      y_train = []

      for batch_sample in batch_samples:
        img_name = batch_sample[0]
        label = batch_sample[1]
        img = cv2.imread(os.path.join(root_dir, img_name))

        #img, label = preprocessing(img, label, new_height=224, new_width=224, num_classes=37)
        #img = preprocessing(img, new_height=224, new_width=224)
        img = preprocessing(img)
        label = my_onehot_encoded(label)

        X_train.append(img)
        y_train.append(label)

      X_train = np.array(X_train)
      y_train = np.array(y_train)

      yield X_train, y_train

Он считывает и изменяет размер моих входных изображений, а также считывает и кодирует метки. Но очень медленно. Есть ли обходной путь? Возможно ли изменить размер изображений раньше и загружать их только партиями? Я думаю, что изменение размера занимает больше всего времени ....

...