【发布时间】:2017-11-15 20:40:03
【问题描述】:
我想在 AWS lambda 上使用 sklearn。 sklearn 依赖于 scipy(173MB) 和 numpy(75MB)。所有这些包的总大小超过了 256 MB 的 AWS Lambda 磁盘空间限制。
如何使用 AWS lambda 来使用 sklearn?
【问题讨论】:
标签: amazon-web-services numpy scipy scikit-learn aws-lambda
我想在 AWS lambda 上使用 sklearn。 sklearn 依赖于 scipy(173MB) 和 numpy(75MB)。所有这些包的总大小超过了 256 MB 的 AWS Lambda 磁盘空间限制。
如何使用 AWS lambda 来使用 sklearn?
【问题讨论】:
标签: amazon-web-services numpy scipy scikit-learn aws-lambda
This guy 将它降低到 40MB,虽然我自己还没有尝试过。
相关Github repo。
【讨论】:
有两种方法可以做到这一点
1) 动态安装模块
2)aws批处理
1) 动态安装模块
def lambdahandler():
#install numpy package
# numpy code
#uninstall numpy package
## now install Scipy package
# execute scipy code
反之亦然,取决于您的代码
2) 使用 Aws 批处理
这是对内存空间没有任何限制的最佳方式。
只是您需要构建一个Docker 映像并需要在requirement.txt 文件中编写所有必需的包和库。
【讨论】:
我也想这样做,这确实非常困难。我最终购买了包含 scikit-learn、pandas、numpy 和 scipy 的层。
https://www.awslambdas.com/layers/3/aws-lambda-scikit-learn-numpy-scipy-python38-layer
还有一个层也包含 xgboost。
【讨论】: