Tensorflow应用程序不再部署到Heroku:Slug大小太大



我有很多heroku应用程序,直到最近我都能够非常无缝地更新它们。它们利用tensorflow和streamlight,在部署时都会发出类似的信息:

-----> Compressing...
remote:  !     Compiled slug size: 560.2M is too large (max is 500M).
remote:  !     See: http://devcenter.heroku.com/articles/slug-size
remote:
remote:  !     Push failed
remote:  !
remote:  ! ## Warning - The same version of this code has already been built: 5c0f686a86459f6e81627ce14770f7494f4bd244
remote:  !
remote:  ! We have detected that you have triggered a build from source code with version 5c0f686a86459f6e81627ce14770f7494f4bd244
remote:  ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
remote:  !
remote:  ! If you are developing on a branch and deploying via git you must run:
remote:  !
remote:  !     git push heroku <branchname>:main
remote:  !
remote:  ! This article goes into details on the behavior:
remote:  !   https://devcenter.heroku.com/articles/duplicate-build-version
remote:
remote: Verifying deploy...
remote:
remote: !       Push rejected to dry-caverns-08193.
remote:
To https://git.heroku.com/dry-caverns-08193.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/dry-caverns-08193.git'

我知道它说子弹大小太大了,但他们以前也运行过同样的消息,所以我不确定这就是问题所在。

这是我的文件设置:

app.py
Procfile
requirements.txt
setup.sh
my_model/
-- assets/
-- variables/
-- variables.index
-- variables.data-00000-of-000001
saved_model.pb

requirements.txt的读数如下:

tensorflow==2.*
streamlit==0.67.0
requests==2.24.0
requests-oauthlib==1.3.0

setup.sh读取如下:

mkdir -p ~/.streamlit/
echo "
[general]n
email = "myemail@gmail.com"n
" > ~/.streamlit/credentials.toml
echo "
[server]n
headless = truen
enableCORS=falsen
port = $PORTn
" > ~/.streamlit/config.toml

我的直接怀疑是tensorflow导致了段塞尺寸过大——但它以前与tensorflow一起工作,所以我";I’我不知道为什么现在不行。

还有别的可能吗?

编辑:

在看了这个问题之后:Heroku:如果你在分支上开发并通过git部署,你必须运行:我尝试了git push heroku master:main,但在日志中显示以下内容时不起作用:

Push rejected to dry-caverns-08193.
remote:
To https://git.heroku.com/dry-caverns-08193.git
! [remote rejected] master -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/dry-caverns-08193.git'

如果您正在使用免费的dyno:

requirements.txt中进行更改:

tensorflow-cpu

而不是

tensorflow

这将大大减少你的子弹大小

此外,您的问题也可能取决于型号重量大小

另一个提示:

如果您直接从GitHub中提取代码,请使用".slugignore"文件,这样您就可以忽略添加到Dyno 中的任何内容,如README到GitHub Actions到笔记本电脑

我还没有彻底测试过,只是把它放在这里,以防它对某人有帮助。

我有很多应用程序的内存大小超过了500MB。它警告,但当我这样做时不会出错。这可能是因为我没有参加免费计划,而是参加了付费计划。因此,如果有人迫切希望让它发挥作用,并且无法以任何其他方式将鼻涕虫大小降低到500MB以下,那么为该应用程序进行最低报酬的计划可能是一个可行的解决方案。

相关内容

  • 没有找到相关文章

最新更新