Как быстрее читать данные (изображения) из корзин AWS S3? - PullRequest
0 голосов
/ 11 июня 2018

Я написал следующий код для загрузки изображений из моего сегмента 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 ГГц).нет графического процессора)!Итак, как мне сделать это быстрее?И возможно ли сделать это так быстро, как в моей локальной системе?

...