![](/img/trans.png)
[英]Deploy model from local jupyter notebook to amazon sagemaker
[英]How to use a .joblib model from Amazon Sagemaker in a local environment?
我使用 Sagemaker 在 AWS 中創建了 model。 我將 model.joblib 下載到我的機器上。 我試圖用它來做一些預測。 我可以加載文件:
import joblib
import mlio
import sklearn
filename=r"C:\Users\benki\Downloads\model.tar\model.joblib"
loaded_model = joblib.load(filename)
但是,我不確定 go 從這里到哪里。 我試圖對“loaded_model”進行評分和預測,但我只收到錯誤消息,解釋“loaded_model”沒有這些屬性。 'loaded_model' 是類型:sagemaker_sklearn_extension.externals.automl_transformer.AutoMLTransformer
在來自 Sagemaker Jupyter Notebook 實例的 AWS 中,我可以使用以下內容進行預測:
endpoint_name = "My_Model"
#print(f"Note: Invoking Endpoint: {endpoint_name}")
content_type = "text/csv"
accept = "text/csv"
# create for loop to create results, one at a time
predict=[]
for sample in payloads:
response = client.invoke_endpoint(
EndpointName=endpoint_name,
ContentType=content_type,
Body=sample
)
#print('inference complete')
inference = (response['Body'].read().decode('ascii'))
predict.append((sample,inference))
如何使用這個 joblib model?
在這種情況下,查看確切的錯誤日志和整個本地推理代碼可能會有所幫助。 但是,與此同時,我確實有一些想法供您檢查:
SageMaker 端點部署在完整的應用程序環境中,其中集成了代碼和工件。 您可能缺少 SM 用於設置推理的一些資源,例如轉換器定義或預處理步驟。
在這里您可以看到AutoMLTransformer
資源的源代碼。 值得注意的是,它的構造函數需要訪問包含fit()和transform()方法的特征和目標Sklearn 轉換器對象。 這些是您當地管道的一部分嗎?
在 SageMaker 中訓練 model 后,會創建一些工件並將其存儲在 Amazon S3 中用戶定義的密鑰路徑中(通常為s3://bucket/your_artifacts_path/model.tar.gz
)。 解壓時,您應該能夠看到一個model/文件夾,其中包含model.joblib
工件和code/子文件夾。 在后者內部,可以使用自動生成的參考 Python 腳本,用於數據預處理和服務。 當然,它們中的某些部分可能不會在您的本地環境中按原樣運行,但請嘗試使用服務腳本作為參考來確定如何預處理傳入記錄並針對 model object 進行調用。
如果你發現別的東西,請告訴我!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.