0

我正在尝试将以泡菜对象的形式存储的预处理数据集转换回图像。共有 820 张图像,分辨率为 227 227 或 299 299。我附上了下面的代码。

问题是,最初 tqdm 显示每秒有数百个文件被转换,但它几乎成倍地减慢,到第 500 个文件时,它下降到每秒 1 个文件。我不确定是什么原因造成的,并且遇到了使用并发来解决这个问题的建议。我尝试使用 Matplotlib 的 savefig 保存绘图,但遇到了同样的减速。

我想知道代码的哪一部分导致速度变慢以及如何解决它,因为我必须将多个 100 个泡菜文件转换回图像。

编辑:问题是程序内存不足并变慢。

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
4

0 回答 0