想把mirFlicker25数据集处理为mat,编写代码如下,但会导致内存溢出。请问有什么解决办法吗?
from skimage.io import imread, imshow
import scipy.io as scio
from skimage.transform import resize
from os.path import join
from os import listdir
import numpy as np
from tqdm import tqdm
IMG_P = r'D:\mirflickr25k\mirflickr'
# image 文件列表
key_img = lambda s: int(s.split('.jpg')[0].split('im')[-1])
fs_img = [f for f in listdir(IMG_P) if '.jpg' in f]
fs_img = sorted(fs_img, key=key_img) # 按标号排序
fs_img = [join(IMG_P, f) for f in fs_img]
N_IMG = 25000
batch_size = 2500
print(N_IMG)
all_img = []
for i in tqdm(range(25000)):
im = imread(fs_img[i])
im = resize(im, (224, 224, 3), mode='constant')
im = np.expand_dims(im, axis=0)
im = im.transpose((0, 3, 2, 1))
all_img.append((im))
all_img = np.vstack(all_img)
scio.savemat('D:/result/img', {'image':all_img})