[英]data format to predict with model fitted via Sagemaker's XGBoost built-in algorithm and training container
[英]How do I load the model artifact from AWS Sagemaker built-in container?
我正在使用 Sagemaker 的线性学习器容器来训练 model。训练已经完成,model 工件保存在 S3 中。 我下载它是一个.tar.gz 文件,其中存储了实际的 model 文件,名为 model-algo-1,没有格式扩展名。 我正在尝试加载此 model 并检查 model 系数,但不确定如何执行此操作。
我尝试了 pickle 和 joblib,但它们没有用。 有谁知道如何加载从 Sagemaker 内置容器训练的 model 文件? 或者有没有其他方法可以检查 model 系数? 这是逻辑回归 model。
谢谢
我设法让这个工作。
从SageMaker 文档中,有两个类可用于加载已部署的线性学习器
根据文档,这个 class:
《参考LinearLearner s3 model数据》
您可以按如下方式使用它:
from sagemaker import LinearLearnerModel, get_execution_role, Session
import boto3
sess = boto3.Session(region_name=region_name)
sagemaker_session = Session(boto_session=sess)
role = get_execution_role(sagemaker_session)
model = LinearLearnerModel(model_data, role, sagemaker_session=sagemaker_session)
my_serverless_inference_config = ServerlessInferenceConfig(memory_size_in_mb=2048, max_concurrency=1)
linear_predictor = model .deploy(endpoint_name=my_endpoint_name,serverless_inference_config=my_serverless_inference_config,serializer=CSVSerializer(), deserializer=JSONDeserializer())
from sagemaker.predictor import csv_serializer, json_deserializer
linear_regressor.serializer = csv_serializer
linear_regressor.deserializer = json_deserializer
result = linear_predictor.predict(X_test)
#Iterate the result JSON to get an NP array of all the predictions so we can compare to Y test
predictions = np.array([res['score'] for res in result['predictions']])
如果您的 model 已经部署了端点,您可以使用此选项
from sagemaker import LinearLearnerPredictor, get_execution_role, Session
import boto3
sess = boto3.Session(region_name=region_name)
sagemaker_session = Session(boto_session=sess)
role = get_execution_role(sagemaker_session)
predictor = LinearLearnerPredictor(endpoint_name, sagemaker_session=sagemaker_session)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.