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
文件夹中。
目前,我一直在像这样从 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
文件夹中。