Ant*_*ine 9 python heroku deep-learning keras tensorflow
我使用 Flask 开发了一个 rest API 来公开 Python Keras 深度学习模型(用于文本分类的 CNN)。我有一个非常简单的脚本,可以将模型加载到内存中并输出给定文本输入的类概率。API 在本地完美运行。
但是,当我git push heroku master,我得到Compiled slug size: 588.2M is too large (max is 500M)。该模型大小为 83MB,这对于深度学习模型来说非常小。值得注意的依赖项包括 Keras 及其 tensorflow 后端。
我知道您可以在 Heroku 上使用 GB 的 RAM 和磁盘空间。但瓶颈似乎是 slug 大小。有没有办法绕过这个?还是 Heroku 不是部署深度学习模型的正确工具?
Heroku 是一个非常好的部署应用程序的云平台,但如果您有深度学习模型,即需要使用大型 CNN/深度学习模型进行预测的应用程序,那么此云不适合。您可以尝试其他云平台,例如 AWS、Amazon Sagemaker、MS Azure、IBM Watson。
我遇到了同样的问题,花了几天时间我才知道是张量流库导致了这个开销。
我使用requests.txt文件中的 1 行解决了这个问题:
tensorflow-cpu==2.5.0
Run Code Online (Sandbox Code Playgroud)
代替
tensorflow==2.5.0
Run Code Online (Sandbox Code Playgroud)
您可以使用任何更新的张量流库版本。在此处阅读有关 TensorFlow-CPU 的更多信息
正如其他人所建议的,我要检查的第一件事是找出为什么你的存储库如此大,因为模型大小只有 83MB。
鉴于您无法减小大小,可以选择卸载部分存储库,但要做到这一点,您仍然需要了解哪些文件占用了空间。heroku 文档中建议卸载。Slug 大小限制为 500MB,如下所述: https: //devcenter.heroku.com/articles/slug-compiler#slug-size,我相信这与在发生更改时启动新实例所需的时间有关需要资源。但是,如果您有特别大的文件,则可以使用卸载。有关卸载的更多信息: https: //devcenter.heroku.com/articles/s3
您可以减小模型大小并使用较小的tensorflow-cpu(Python 3.8为144MB)
pip install tensorflow-cpu
Run Code Online (Sandbox Code Playgroud)
https://pypi.org/project/tensorflow-cpu/#files
| 归档时间: |
|
| 查看次数: |
6073 次 |
| 最近记录: |