AWS Lambda - 如何将 ONNX 模型放入 AWS 层

AWS Lambda - How to Put ONNX Models in AWS Layers

目前,我一直在像这样从 S3 下载我的 ONNX 模型:

s3 = boto3.client('s3')
if os.path.isfile('/tmp/model.onnx') != True:
    s3.download_file('test', 'models/model.onnx', '/tmp/model.onnx')
inference_session = onnxruntime.InferenceSession('/tmp/model.onnx')

但是,我想减少必须下载此模型的延迟。为此,我希望将模型保存在 AWS Lambda 层中。但是,我在这样做时遇到了麻烦。

我试过这样创建 ZIP 文件:

- python
     - model.onnx

并像 inference_session = onnxruntime.InferenceSession('/opt/model.onnx') 一样加载它,但我收到“文件不存在”错误。我应该怎么做才能确保可以在 /opt/ 目录中找到该模型?

注意:我的 AWS Lambda 函数是 运行 Python 3.6.

您的文件应该在 /opt/python/model.onnx 中。因此,您应该可以使用以下方式获取它:

inference_session = onnxruntime.InferenceSession('/opt/python/model.onnx')

如果您不希望您的文件位于 python 文件夹中,则不要使用此类文件夹创建图层。只需将 model.onnx 放在 zip 的根文件夹中,而不是放在 python 文件夹中。