我需要一些建议。
我使用Tensorflow训练了一个图像分类器,并希望使用serverless将其部署到AWS Lambda。该目录包括模型、一些python模块(包括tensorflow和numpy )以及python代码。解压前完整文件夹的大小是340MB,AWS lambda会拒绝它,并显示错误消息"The unzipped state must be smaller than 262144000 bytes"
。
我应该如何处理这个问题?我不能在AWS Lambda上部署这样的包吗?
注意:在requirements.txt文件中,列出了两个模块,包括numpy和tensorflow。(Tensorflow是一个大模块)
发布于 2019-04-11 15:02:06
我知道我很晚才回复..只是把它放在这里供其他人参考..我做了以下事情-
按建议删除所有核心文件,特别是站点中的两个文件-packages/ here.
如果这不起作用,那么有一些额外的事情可以做,如删除pyc文件等,如前面提到的here
发布于 2018-05-24 20:32:39
您可以使用限制为512Mb的临时磁盘容量(/tmp),但在您的情况下,内存仍然是一个问题。
最好的选择是使用AWS批处理,如果serverless不管理它,您甚至可以保留一个lambda来触发您的批处理
发布于 2019-01-31 03:49:25
要做到这一点,最好的方法是使用this article中概述的Serverless Framework。这有助于使用docker镜像来压缩它们,该镜像模仿亚马逊的linux环境。此外,它自动使用S3作为您的Lambda的代码库,这增加了大小限制。本文是一个非常有用的指南,与开发人员在AWS上使用tensorflow和其他大型库的方式相同。
如果您仍然遇到250MB大小的限制,您可以尝试使用与上一篇文章相同的python-requirements-plugin
的this article,但使用选项-slim: true
。这将帮助您通过从包中删除不必要的文件来优化压缩包,这允许您在解压缩前后减小包的大小。
https://stackoverflow.com/questions/50503912
复制相似问题