Я пытаюсь преобразовать предварительно обработанный набор данных, сохраненный в виде объектов рассола, обратно в изображения. Всего доступно 820 изображений с разрешением 227 * 227 или 299 * 299. Я прикрепил приведенный ниже код.
Проблема в том, что изначально tqdm показывает, что ~ несколько сотен файлов преобразуются каждую секунду, но почти замедляется экспоненциально, к 500-му файлу уменьшается до 1 файла в секунду. Я не уверен, что является причиной этого, и натолкнулся на предложения использовать параллелизм для решения этой проблемы. Я попытался сохранить график, используя savefig из Matplotlib, но столкнулся с тем же замедлением.
Мне интересно, какая часть кода вызывает замедление и как это исправить, поскольку мне нужно преобразовать несколько сотен файлов рассола обратно в изображения.
import _pickle
import matplotlib.pyplot as plt
import os
from tqdm import tqdm
import png
for filename in tqdm(os.listdir(os.getcwd())):
if "pickle" in filename:
try:
with open(filename, 'rb') as inputfile:
im = _pickle.load(inputfile, encoding='latin1')
size = im.shape[0]
ims = Image.fromarray(im.reshape([size,size]))
#plt.imshow(im.reshape([size,size]), cmap = 'gray')
#plt.savefig(filename + '.png')
#ims = ims.resize((size, size), Image.ANTIALIAS) # LANCZOS as of Pillow 2.7
ims.save(filename +'.jpeg', quality = 95)
except _pickle.UnpicklingError:
pass