Преобразование файлов маринованных изображений в изображения постепенно замедляется в цикле - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь преобразовать предварительно обработанный набор данных, сохраненный в виде объектов рассола, обратно в изображения. Всего доступно 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...