簡體   English   中英

如何在本地環境中使用來自 Amazon Sagemaker 的 a.joblib model?

[英]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.

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