#python #amazon-web-services #machine-learning #amazon-sagemaker
#python #amazon-веб-сервисы #машинное обучение #amazon-sagemaker
Вопрос:
Я использую контейнер для линейного обучения от Sagemaker для обучения модели. Обучение завершено, и артефакт модели сохранен в S3. Я загружаю его, который является .tar.gz файл, в котором хранится фактический файл модели, называется model-algo-1 без расширения формата. Я пытаюсь загрузить эту модель и проверить коэффициенты модели, но не уверен, как это сделать.
Я пробовал pickle и joblib, но они не сработали. Кто-нибудь знает, как загрузить файл модели, подготовленный из встроенного контейнера Sagemaker? Или есть какой-либо другой способ проверить коэффициенты модели? Это модель логистической регрессии.
Спасибо
Комментарии:
1. Немного поздно, но мне было интересно, нашли ли вы ответ на этот вопрос
Ответ №1:
Мне удалось заставить это работать.
Из документации SageMaker есть два класса, которые можно использовать для загрузки уже развернутого Linear Learner
Вариант 1: используйте sagemaker.LinearLearnerModel для построения предиктора из S3 artificat
Согласно документации, этот класс:
«Ссылка на данные модели LinearLearner s3»
Вы можете использовать его следующим образом:
Шаг 1: Создайте модель LinearLearner, используя артефакты, размещенные на S3
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, возвращаемый функцией deploy
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)