Я написал следующий код для загрузки изображений из моего сегмента S3, предварительной обработки и считывания их в массив:
from scipy.misc import imresize
from scipy.misc import imread
import numpy as np
import boto3
import tempfile
import matplotlib.image as mpimg
import matplotlib.pyplot as plt
temp = []
s3 = boto3.resource('s3', region_name='ap-northeast-2') # This is the nearest AWS region to my location
role = get_execution_role()
bucket = s3.Bucket('my-bucket')
for img_name in X:
obj = bucket.Object('ImageFolder/'+img_name)
obj.download_file(img_name)
img = mpimg.imread(img_name)
img = imresize(img, (32, 32))
img = img.astype('float32')
temp.append(img)
X = np.stack(temp)
Но это занимает вечность.Есть около 20000 изображений, и их загрузка в temp
заняла около 3 часов!И во время публикации этого вопроса, он находился в процессе помещения temp
в массив numpy X
, который, я подозреваю, может занять что-то от 1-2 часов.Это означает, что весь этот процесс занимает около 5 часов, в то время как в моей локальной системе ( меньше, чем минута *1009*) потребовалось всего несколько минут (заурядный двухъядерный процессор 2,2 ГГц).нет графического процессора)!Итак, как мне сделать это быстрее?И возможно ли сделать это так быстро, как в моей локальной системе?