【发布时间】:2018-10-07 13:30:41
【问题描述】:
我使用内置的 RESnet18 docker 图像训练了一个模型,现在我想将模型部署到一个端点并分类大约 100 万张图像。我的所有训练、验证和测试图像都以 RecordIO 格式存储在 S3 上(使用 im2rec.py 转换)。根据docs:
Amazon SageMaker 图像分类算法支持 RecordIO (application/x-recordio) 和图像 (application/x-image) 内容类型进行训练。该算法仅支持应用程序/x-image 进行推理。
所以我无法对 RecordIO 格式的训练数据进行推理。为了克服这个问题,我将所有原始 .jpg 图像(约 2GB)复制到我的 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...
不用说,将所有数据传输到我的笔记本实例需要很长时间,我宁愿在运行推理之前不必这样做。为什么 SageMaker 图像分类不支持 RecordIO 进行推理?更重要的是,在无需将图像从 S3 中移出的情况下,对许多图像进行推理的最佳方法是什么?
【问题讨论】:
标签: amazon-s3 resnet amazon-sagemaker