более быстрый способ загрузки изображений? - PullRequest
0 голосов
/ 05 августа 2020

Я Python новичок, но имею приличный опыт работы на других языках. Я использую этот l oop для загрузки в каталог изображений для некоторого машинного обучения, поэтому я конвертирую их в массивы numpy. Это очень медленно, поэтому я, должно быть, делаю что-то не так!

Мой текущий код:

def load_images(src):
  
  files = []  # accept multiple extensions
  for ext in ('*.gif', '*.png', '*.PNG', '*.jpg', '*.jpeg', '*.JPG', '*.JPEG'):
    files.extend(glob.glob(os.path.join(src, ext)))

  images = []
  for each in files:
    print(each)
    img = PIL.Image.open(each)
    img_array = np.asarray(img)
    images.append(img_array)

  return images

# need to convert from list to numpy array
train_images = np.asarray(load_images(READY_IMAGES))

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Кроме того, если вы используете машинное обучение с keras / tensorflow, вы можете использовать генератор, чтобы действительно ускорить процесс загрузки, и он будет потреблять память на go, тем самым сохраняя вашу оперативную память для других целей. Здесь - отличная статья о функции. Вы также можете посетить официальную документацию .

0 голосов
/ 05 августа 2020
from multiprocessing import Process
    #this is the function to be parallelised
    def image_load_here(image_path):
        pass 

if __name__ == '__main__':
    #Start the multiprocesses and provide your dataset.
    p = Process(target=image_load_here,['img1', 'img2', 'img3', 'img4'])
    p.start()
    p.join()

Ссылка на исходный код: самый быстрый способ загрузки изображений в python для обработки

Дополнительная ссылка

  1. Самый быстрый считыватель изображений ? Четыре способа открыть спутниковый снимок в Python
  2. Эффективная загрузка изображения
...