国产精品久久久久久久久久东京,亚洲视频免费播放,少妇人妻精品一区二区三区视频,日韩一级品

好房網(wǎng)

網(wǎng)站首頁 互聯(lián)網(wǎng) > 正文

Heroku云在Web開發(fā)人員和機(jī)器學(xué)習(xí)愛好者中頗負(fù)盛名

2022-01-06 09:55:46 互聯(lián)網(wǎng) 來源:搜狐網(wǎng)
導(dǎo)讀 2022年1月6日整理發(fā)布:Heroku 云在Web開發(fā)人員和機(jī)器學(xué)習(xí)愛好者中頗負(fù)盛名。該平臺提供了部署和維護(hù)Web應(yīng)用程序的簡易方法,但如果您不熟

2022年1月6日整理發(fā)布:Heroku 云在Web開發(fā)人員和機(jī)器學(xué)習(xí)愛好者中頗負(fù)盛名。該平臺提供了部署和維護(hù)Web應(yīng)用程序的簡易方法,但如果您不熟悉部署深度學(xué)習(xí)應(yīng)用程序,可能會遇到棘手的存儲和依賴問題。本文將使您的部署過程更順暢,以便您能專注于創(chuàng)建出色的Web應(yīng)用程序。我們將學(xué)習(xí)DVC集成、基于Git和CLI的部署、錯誤代碼H10、使用Python軟件包以及優(yōu)化存儲。

一、基于Git和CLI的部署

Streamlit應(yīng)用程序可以使用Git、GitHub集成或使用Docker加以部署?;贕it的方法是在Heroku服務(wù)器上部署任何數(shù)據(jù)應(yīng)用程序的更快速更簡單的方法。

基于Git的簡單方法

Streamlit應(yīng)用程序可使用以下命令來部署:

git remote add heroku https://heroku:$HEROKU_API_KEY@git.heroku.com/.git

git push -f heroku HEAD:master

為此,您需要:

Heroku API 密鑰

Heroku 應(yīng)用程序:通過CLI或訪問網(wǎng)站。

基于Git的項(xiàng)目

配置文件

基于CLI的方法

基于CLI的部署很基本,且易于學(xué)習(xí)。

1. 在此處創(chuàng)建一個免費(fèi)的Heroku帳戶。

2. 使用該鏈接,安裝Heroku CLI。

3. 克隆遠(yuǎn)程存儲庫或使用git init。

4. 輸入heroku login和heroku create dagshub-pc-app。這將使您登錄到服務(wù)器,并在Web服務(wù)器上創(chuàng)建一個應(yīng)用程序。

5. 現(xiàn)在創(chuàng)建含有運(yùn)行應(yīng)用程序的命令的Procfile: web: streamlit run --server.port $PORT streamlit_app.py

6. 最后,提交并推送代碼到heroku服務(wù)器git push heroku master。

二、PORT

如果您使用streamlit run app.py運(yùn)行應(yīng)用程序,它將生成錯誤代碼 H10,這意味著Streamlit應(yīng)用程序未使用服務(wù)器分配的$PORT。

您需要:

使用Heroku CLI設(shè)置PORT。

heroku config:set PORT=8080

在Procfile中進(jìn)行更改,并在參數(shù)中添加服務(wù)器端口。

web:streamlit run --server.port $PORT app.py

三、調(diào)整Python軟件包

這部分花了我2天的時間來調(diào)試,因?yàn)镠eroku云有500MB的限制,而新的TensorFlow軟件包是489.6MB。為了避免依賴項(xiàng)和存儲問題,我們需要在requirements.txt文件中進(jìn)行更改:

1. 添加tensorflow-cpu而不是tensorflow,這將我們的slug大小從765MB縮減到400MB。

2. 添加opencv-python-headless而不是opencv-python,以避免安裝外部依賴項(xiàng)。這將解決所有cv2錯誤。

3. 刪除所有不必要的軟件包,numpy、Pillow 和streamlit除外。

四、DVC集成

從DVC服務(wù)器成功提取數(shù)據(jù)需要幾個步驟:

1. 首先,我們允許通過使用Heroku API來安裝 apt-files的buildpack:

heroku buildpacks:add --index 1 heroku-community/apt

2. 創(chuàng)建文件名Aptfile,并添加最新的DVC版本https://github.com/iterative/dvc/releases/download/2.8.3/dvc_2.8.3_amd64.deb

3. 在您的app.py文件中添加額外的代碼行:

import os

if "DYNO" in os.environ and os.path.isdir(".dvc"):

os.system("dvc config core.no_scm true")

if os.system(f"dvc pull") != 0:

exit("dvc pull failed")

os.system("rm -r .dvc .apt/usr/lib/dvc")

之后提交您的代碼,并將其推送到Heroku服務(wù)器。部署成功后,應(yīng)用程序會自動從DVC服務(wù)器拉取數(shù)據(jù)。

五、優(yōu)化存儲

優(yōu)化存儲的方式有多種,最常見的就是使用Docker。通過使用Docker方法,您可以繞過500MB的限制,還可以自由安裝任何第三方集成或軟件包。想進(jìn)一步了解如何使用Docker,請查看本指南。

為了優(yōu)化存儲:

在requiremnets.txt中僅添加模型推理python庫。

我們可以通過使用以下命令從DVC提取選擇性數(shù)據(jù):

dvc pull {model} {sample_data1} {sample_data2}..

我們只需要一個模型推理文件,因此將其余文件添加到.slugignore,其工作方式與.gitignore類似。想了解更多信息,請查看Slug編譯器(https://devcenter.heroku.com/articles/slug-compiler#ignoring-files-with-slugignore)。

從服務(wù)器成功拉取數(shù)據(jù)后,刪除.dvc目錄和.apt/usr/lib/dvc目錄。

六、結(jié)果

最初的slug大小為850MB,但通過存儲和軟件包優(yōu)化,最終的slug大小縮減到400MB。我們用一個簡單的命令解決了錯誤代碼H10,并添加opencv-python-headless軟件包來解決依賴問題。本文旨在克服初學(xué)者在Heroku服務(wù)器上面臨的一些常見問題。

基于Docker的部署可以解決很多存儲問題,但也帶來了復(fù)雜性和緩慢的部署過程。可以使用heroku container:push web,但在此之前,需要先構(gòu)建Docker并測試它,在本地解決所有問題后才能推送它。這種方法是高級Heroku用戶所青睞的。

下一個挑戰(zhàn)是使用Webhook部署您的Web應(yīng)用程序。這將使我們可以從任何平臺自動化整個機(jī)器學(xué)習(xí)生態(tài)系統(tǒng)。自動化過程將需要創(chuàng)建一臺簡單的Flask Web服務(wù)器,該服務(wù)器將運(yùn)行shell命令。


版權(quán)說明: 本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!


標(biāo)簽:

最新文章: