Я обучил модель с помощью встроенного образа док-станции RESnet18, и теперь я хочу развернуть модель в конечной точке и классифицировать ~ 1 миллион изображений. Все мои обучающие, проверочные и тестовые изображения хранятся на S3 в формате RecordIO (конвертируется с im2rec.py ). Согласно документам :
Алгоритм классификации изображений Amazon SageMaker поддерживает типы контента RecordIO (application / x-recordio) и изображений (application / x-image) для обучения. Алгоритм поддерживает только application / x-image для вывода.
Так что я не могу сделать вывод о моих тренировочных данных в формате RecordIO. Чтобы преодолеть это, я скопировал все необработанные изображения .jpg (~ 2 ГБ) на мой экземпляр Sagemaker Jupyter Notebook и выполнил вывод по одному следующим образом:
img_list = os.listdir('temp_data') # list of all ~1,000,000 images
for im in img_list:
with open('temp_data/'+im, 'rb') as f:
payload = f.read()
payload = bytearray(payload)
response = runtime.invoke_endpoint(EndpointName=endpoint_name,
ContentType='application/x-image',
Body=payload)
etc...
Само собой разумеется, что передача всех данных на мой экземпляр Notebook заняла много времени, и я предпочел бы не делать этого перед запуском логического вывода. Почему классификация изображений SageMaker не поддерживает RecordIO для вывода? И что еще более важно, каков наилучший способ сделать вывод на многих изображениях, не перемещая их из S3?