【问题标题】:Sagemaker image classification: Best way to perform inference on many images in S3?Sagemaker 图像分类:在 S3 中对许多图像执行推理的最佳方法?
【发布时间】: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


    【解决方案1】:
    【解决方案2】:

    RecordIO 格式旨在将大量图像打包到一个文件中,因此我认为它不适用于预测单个图像。

    在预测方面,您绝对不必将图像复制到笔记本实例或 S3。您只需从任何地方加载它们并将它们内联到您的预测请求中。

    如果您想要基于 HTTP 的预测,以下是您的选择:

    1) 在任何机器上使用 SageMaker SDK Predictor.predict() API(只要它具有正确的 AWS 凭证)https://github.com/aws/sagemaker-python-sdk

    2) 在任何机器上使用 AWS Python SDK(又名 boto3)API invoke_endpoint()(只要它具有正确的 AWS 凭证)

    您甚至可以构建一个简单的服务来使用 Lambda 执行预处理或后处理。这是一个例子:https://medium.com/@julsimon/using-chalice-to-serve-sagemaker-predictions-a2015c02b033

    如果您想要批量预测: 最简单的方法是从 SageMaker 检索经过训练的模型,编写几行临时 MXNet 代码来加载它并运行所有预测。这是一个例子:https://mxnet.incubator.apache.org/tutorials/python/predict_image.html

    希望这会有所帮助。

    【讨论】:

    • 谢谢!我最终使用了一个自定义脚本,该脚本使用了 Resnet18 的 keras 实现,我使用入口点“train”对它进行了 dockerized。 train 脚本有一个标志,用于在训练和评估模型预测之间切换。
    猜你喜欢
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 2018-11-30
    • 2018-12-13
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 2019-09-01
    相关资源
    最近更新 更多