Я работаю с большим набором данных изображений, и я загрузил все на свой диск, чтобы я мог легко получить к нему доступ с помощью Google Colab. Если я пытаюсь использовать простой цикл for с opencv для чтения и сохранения всех изображений в списке, это заняло более 2 часов, поэтому я решил попробовать использовать многопроцессорность. Я пытался таким образом, но в конце у меня ничего нет в моем списке. Может кто-нибудь попытаться заставить меня понять, что я делаю не так? Я действительно ценю каждую помощь. Большое спасибо всем.
t1 = time.perf_counter()
def load_and_resize(image_list,output_list):
for file in image_list:
img = cv2.imread(file,0)
img = cv2.resize(img, (48, 48))
output_list.append(img)
output_list = np.asarray(output_list)
return output_list
with concurrent.futures.ProcessPoolExecutor(max_workers=3) as executor:
top_images = []
image_files = []
image_files += glob.glob(top_path+"/*"+".png")
print("Processed " + str(len(image_files)) + " images")
executor.map(load_and_resize, image_files,top_images)
t2 = time.perf_counter()
print(f'Finished in {t2-t1} seconds')```