python 如何从AWS Sagemaker内置容器加载模型工件?

b09cbbtk  于 2023-02-02  发布在  Python
关注(0)|答案(1)|浏览(121)

我正在使用Sagemaker的线性学习器容器来训练模型。训练已经完成,模型工件保存在S3中。我下载了它,它是一个. tar.gz文件,其中存储了名为model-algo-1的实际模型文件,没有格式扩展。我尝试加载此模型并检查模型系数,但不确定如何执行此操作。
我试过pickle和joblib,但是它们不起作用。有人知道如何加载从Sagemaker内置容器训练的模型文件吗?或者有没有其他方法可以检查模型系数?这是一个逻辑回归模型。
谢谢

dsf9zpds

dsf9zpds1#

我想办法修好了。
SageMaker documentation中,有两个类可用于加载已部署的线性学习器

选项1:使用Sagemaker. LinearLearnerModel从S3人工神经网络建立预测器

根据文档,此类:
"参考线性学习器s3模型数据"
您可以按如下方式使用它:

步骤1:使用S3上托管的artificats构建线性学习器模型
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)
步骤2:将模型部署到端点(在本例中,它是一个无服务器端点)
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
步骤3:使用部署函数返回的sagemaker. predictor对象
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']])

选项2:使用LinearLearnerPredictor根据已有的端点构建预测值

如果模型具有已部署的端点,则可以使用此选项

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)

相关问题