Набор данных изображений содержит приблизительно 70 000 изображений. Я пытался создать из них 6 маринованных файлов. Поэтому каждый файл дампа рассылки содержит около 11519 предварительно обработанных изображений. Размер папки с изображениями на диске составляет примерно 2,5G . Однако каждый файл маринада генерируется с размером 6.45G .
Всего 6,45 * 6 = 38,7 Г !!
Это ожидаемое поведение или я что-то не так делаю? Я использовал следующий скрипт для генерации маринованных файлов.
import os
import pickle
import numpy as np
from PIL import Image
n = 11519
images = []
DATADIR = r"path/to/images"
def data_preprocessing(samples, img_size):
img_width, img_height, channels = img_size, img_size, 3
image_list = [np.array((Image.open(os.path.join(DATADIR, filename)).convert('RGB')).resize((img_width, img_height), Image.ANTIALIAS)) for filename in samples]
images = np.asarray(image_list).astype('float32') / 255.0
ds_samples = np.reshape(images, (len(samples), img_width, img_height, channels))
return ds_samples
def divide_chunks(samples, n):
# looping till length samples
for i in range(0, len(samples), n):
yield samples[i:i + n]
# Appending files from directory to list
for file in (os.listdir(DATADIR)):
images.append(file)
# Creating parts
sub_samples = list(divide_chunks(images, n))
# Saving pickle files
for chunk in range(len(sub_samples)):
outfile = open("sample_{}.pkl".format(chunk), 'wb')
pickle.dump(data_preprocessing(sub_samples[chunk], 224), outfile, protocol=4)
outfile.close()