Загрузка набора данных изображений в память с помощью PIL (python) занимает слишком много памяти - PullRequest
0 голосов
/ 04 июля 2019

Я использую Google Colab (13 ГБ ОЗУ) и пытаюсь загрузить в память 8000 изображений JPG (512x512), в среднем по 150 КБ каждое.

Я ожидаю, что при всем этом потребляется не более 1,5 ГБ ОЗУ, но на самом деле все это потребляется, и Google Colab падает.

Чего мне не хватает?

images = []
files = os.listdir(IMAGES_PATH)
for f in files:
  temp_image = Image.open(IMAGES_PATH + f)                
  temp = np.array(temp_image.convert('RGB'), dtype='float32') / 255
  images.append(temp)

1 Ответ

1 голос
/ 04 июля 2019

Вы используете:

512*512*8000 это матрица, которую вы получите после расчета, а число с плавающей запятой использует 8 Кбайт, что означает, что ваша память используется: 512*512*8000*8 = 11,11GB

Оригинальный размер вашего изображения не имеет значения для этого расчета, питон хранит его в памяти.

...