簡體   English   中英

腌制 python 機器學習 model 使用硬編碼路徑,不在其他機器上運行 - 怎么辦?

[英]pickled python machine learning model uses hardcoded paths, doesn't run on other machine - what to do?

我使用 AutoGluon 在我的計算機上本地創建 ML 模型。 現在我想通過 AWS 部署它們,但我意識到在此過程中創建的所有泡菜文件都使用對其他泡菜文件的硬編碼路徑引用:

/home/myname/Desktop/ETC_PATH/AutoGluon/

我使用cloudpickle.dump(predictor, open('FINAL_MODEL.pkl', 'wb'))來腌制最終的合奏 model,但 AutoGluon 會為各個模型創建許多其他腌制文件,然后將其引用為/home/myname/Desktop/ETC_PATH/AutoGluon/models//home/myname/Desktop/ETC_PATH/AutoGluon/models/specific_model/等等...

我怎樣才能實現將所有絕對路徑替換為root/AutoGluon/WHATEVER_PATH類的相對路徑,其中 root 可以設置為任何內容,具體取決於 model 稍后保存的位置。

任何指針都會有所幫助。

編輯:我有理由確定我發現了問題。 如果不是加載 FINAL_MODEL.pkl (這似乎是硬編碼路徑),我使用 AutoGluon 的predictor = task.load(model_dir)它應該正確找到所有依賴項,無論整個 AutoGluon 文件夾是否被移動。 github 上的這個問題有幫助

編輯:這解決了問題:如果我使用 AutoGluon 的predictor = task.load(model_dir)而不是加載 FINAL_MODEL.pkl(這似乎是硬編碼路徑),它應該正確找到所有依賴項,無論 AutoGluon 文件夾是否作為一個整體是感動。 github 上的這個問題有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM