簡體   English   中英

如何使用在不同輸入數據上訓練的多個 ml 模型生成一個 model 並在 Sagemaker 中給出預測?

[英]How to use multiple ml models trained on different input data to produce one model and give prediction in Sagemaker?

我正在研究紗麗標簽提取問題。 標簽如紗麗顏色、紗麗類型、邊框設計類型等。共有 176 個不同的標簽。

最初我將它作為一個多標簽問題來處理,我在 output 層中使用了 176 Sigmoid function。 但它沒有按預期工作,我得到的准確性很差。

由於我的問題中的所有標簽都不是獨立的,例如,如果紗麗是綠色的,那么它就不會是紅色或黑色的,如果紗麗是 Banarasi 類型的,那么它就不會是我的標簽列表中提到的其他類型。 所以現在我計划使用多個 ML 模型,每個 model 將是多個 class 分類 model 就像一個 model 將預測顏色,另一個將預測類型,另一個將預測重量等等。

我正在使用 aws sagemaker 來構建和部署模型,但我的問題是如何通過 sagemaker 部署所有這些模型,以便調用所有模型,最后應發送所有模型的組合 output。

我探索了多模型 sagemaker 端點部署,但只有一個 model 可用於預測。 所以它沒有達到我的目的。

任何建議或幫助將不勝感激。

嘿 Chetan,您應該能夠在此用例中使用 SageMaker 多模型端點。 調用端點時,您只需在 API 調用中使用 Python SDK 指定目標 model,如下所示。

import boto3
import json
from sagemaker.serializers import JSONSerializer
endpoint_name = predictor.endpoint_name

##########
#Specify model in target_model parameter
##########
target_model = "petrol.tar.gz"
jsons = JSONSerializer()
payload = jsons.serialize(sampInput)
response = runtime_sm_client.invoke_endpoint(
        EndpointName=endpoint_name,
        TargetModel=target_model,
        Body=payload)
result = json.loads(response['Body'].read().decode())['outputs']
result

我會訓練您需要的模型,然后將這些工件放入多模型端點。 然后根據您想要調用必要的預測 model。我附加了一個端到端的 TensorFlow 多模型端點示例,我在其中訓練、部署和調用兩個單獨的模型。

TF MME 示例: https://github.com/RamVegiraju/SageMaker-Deployment/blob/master/RealTime/Multi-Model-Endpoint/TensorFlow/tf2-MME-regression.ipynb

暫無
暫無

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

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