You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku部署深度学习模型遇Slug体积超限问题求助

解决Heroku部署时Slug体积超标的问题

我之前也碰到过一模一样的情况——用Flask搭了深度学习API,本地跑完全顺畅,但推Heroku时就因为slug体积超500M报错。结合你的场景(模型仅83M,核心依赖是Keras+TensorFlow),给你几个实用的优化方向:

1. 清理冗余文件+精简依赖

  • 先扫一遍项目根目录,把本地测试用的数据集、日志、缓存文件夹(比如__pycache__、.ipynb_checkpoints)全加到.gitignore里,别让这些无关文件占slug空间。
  • 狠狠精简requirements.txt:只留生产必需的依赖,删掉开发用的工具(比如pytest、jupyter这类);如果你的模型不需要GPU加速,直接把tensorflow换成tensorflow-cpu——这个轻量版本能砍掉几百M的GPU相关依赖,效果立竿见影。
  • 安装依赖时禁用缓存:在requirements.txt开头加上--no-cache-dir,或者给Heroku设置环境变量PIP_NO_CACHE_DIR=1,避免pip把安装包的缓存也塞进slug里。

2. 优化模型文件体积

  • 你的模型已经很小,但还能再压缩:比如用Keras导出.h5模型后,用gzip压缩文件,部署时在代码里先解压再加载;或者转换成TensorFlow Lite格式,体积能比原生.h5小30%-50%,而且推理性能完全能满足文本分类场景的需求。

3. 排查Slug的体积构成

  • 要是不确定哪部分占了最大空间,可以部署后运行heroku run bash进入容器,执行du -sh *查看各个目录的大小。我之前就踩过坑:.git目录没加进.gitignore,占了近100M,删掉后直接达标了。

4. 用Pipenv替代pip管理依赖

  • Pipenv会生成精准的Pipfile和Pipfile.lock,比requirements.txt更严谨地管理依赖版本,而且默认会清理安装缓存,能有效减少slug的冗余体积。

这些方法组合起来,绝对能把slug压到500M以内。我当时就是靠换成tensorflow-cpu+清理本地冗余文件解决的问题,你可以试试看!

内容的提问来源于stack exchange,提问作者Antoine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:02:48