本系列教學簡報 PDF & Code 都可以從我的 GitHub 取得!
文章同時發表於: https://andy6804tw.github.io/crazyai-ml/30.使用%20Heroku%20部署機器學習%20API
如果你對機器學習和人工智慧(AI)技術感興趣,歡迎參考我的線上免費電子書《經典機器學習》。這本書涵蓋了許多實用的機器學習方法和技術,適合任何對這個領域有興趣的讀者。點擊下方連結即可獲取最新內容,讓我們一起深入了解AI的世界!
👉 全民瘋AI系列 [經典機器學習] 線上免費電子書
👉 其它全民瘋AI系列 這是一個入口,匯集了許多不同主題的AI免費電子書
您好:
感謝您的文章及教學,收穫良多!
但是在嘗試部屬到Heroku的時候有出現問題,想跟您請教一下,頁面的「Flask API started」有成功跑出來,但是test/predict的頁面,用postman無法成功使用,查看了一下Heroku的log,錯誤訊息如下:
AttributeError: 'XGBClassifier' object has no attribute 'use_label_encoder'
推測是pickle相關的問題,但是在本機端上運行的時候是沒問題的,網路上找了很久,都沒有找到相關解答
中間有嘗試過用joblib存取跟讀取模型,雖然在本機端運行是ok,但是上線到Heroku時,還是出現狀況
(也有嘗試部屬到GCP,但也一樣失敗了QAQ)
因為對於這方面的原理還不是太熟悉,如果您有空的話,再麻煩您解答或提供一些關鍵字讓我可以找尋解法,再次感謝您的教學及文章!!!
嗨~請問你的API是我提供的程式碼還是你自己撰寫的呢?
我自己猜測應該是XGBoost版本訓練的模型與本機或雲端的有不相容。因此建議看一下你訓練模型時用的XGBoost版本是多少,然後再部署雲端時也要安裝一樣的版本才不會有一些問題。(可能跨太多版本就有相容問題)
ps. 可以在 requirements.txt
指定套件版本 ex: xgboost==1.4.2
您好
非常感謝您的回應,我使用的API是您提供的程式碼,沒有更動(除了將runtime.txt拿掉,因為用3.6.1的版本,Heroku會部屬不上去,我看Heroku版本顯示是Using cached install of python-3.9.5),但是指定套件版本依舊沒有成功,還是一樣出現'XGBClassifier' object has no attribute 'use_label_encoder',不知道還有沒有其他的方法可以解決QQ
github:https://github.com/Raymond-Hsu0902/Flask-API-example-with-ML-model-heroku
再麻煩您了,十分感謝!!
a0937736966 沒問題,這個週末幫你看一下(最近有點忙)。似乎 Heroku 的 container 有升級,我再幫你除錯一下。
a0937736966 Hi 我大致看一下應該是XGBoost版本問題。我一樣採用colab訓練,目前colab的XGBoost版本為0.90。你可以看到我在 requirements.txt
指定版本,到時部署在 Heroku 會安裝相對應版本。
https://github.com/1010code/Flask-API-example-with-ML-model-heroku
您好:
剛剛試了一下,有成功部屬到Heroku,真的很感謝,從這一系列的文章學到超多,講解得非常清楚,也期待未來有更多關於機器學習應用的文章或教學(已訂閱Youtube支持!!),感恩~~
感謝大家支持~ 未來會陸續更新一些內容(規劃中),平時工作較忙比較少拍片剪片。不過部落格還是常常在更新哦,歡迎挖寶!