SageMaker - 构建机器学习模型



阅读本章,了解如何使用 SageMaker 中的内置算法构建机器学习 (ML) 模型。

在 Amazon SageMaker 中使用内置算法

请按照以下步骤操作 -

步骤 1:选择内置算法

首先,您需要选择一个内置算法。Amazon SageMaker 提供了各种内置算法,例如线性学习器(用于分类和回归)、XGBoost(用于分类的增强树)和K-means(用于聚类)。

步骤 2:准备数据

接下来,您需要将数据上传到 Amazon S3 存储桶。SageMaker 从 S3 读取数据并将其用于训练模型。数据应为 CSV 或 SageMaker 支持的其他格式。

步骤 3:创建 SageMaker 会话

打开您的 Jupyter Notebook。导入必要的库并创建一个 SageMaker 会话 -

import sagemaker
from sagemaker import get_execution_role

# Create a SageMaker session
session = sagemaker.Session()

# Define the S3 bucket and data path
bucket = 'your-s3-bucket-name'
prefix = 'your-data-prefix'
role = get_execution_role()

步骤 4:配置算法和训练作业

创建 SageMaker 会话后,我们需要配置内置的线性学习器算法。

您可以使用SageMaker 的 LinearLearner 估算器。然后,设置超参数并按如下方式启动训练作业 -

from sagemaker.amazon.linear_learner import LinearLearner

# Configure the LinearLearner estimator
linear = LinearLearner(role=role, instance_count=1,
                       instance_type='ml.m4.xlarge',
                       predictor_type='binary_classifier',
                       output_path=f's3://{bucket}/{prefix}/output')

# Define the data channels (train and validation)
train_data = f's3://{bucket}/{prefix}/train/train.csv'
validation_data = f's3://{bucket}/{prefix}/validation/validation.csv'
data_channels = {'train': train_data, 'validation': validation_data}

# Train the model
linear.fit(inputs=data_channels)

步骤 5:部署模型以进行推理

训练完成后,将模型部署到 SageMaker 端点以进行实时预测,如下所示 -

# Deploy the trained model
predictor = linear.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')

# Make predictions
result = predictor.predict([[1.5, 2.5, 3.0]])
print(result)

将您自己的模型引入 Amazon SageMaker

Amazon SageMaker 还允许您引入您自己的预训练模型并进行部署。请按照以下步骤将您自己的模型引入 Amazon SageMaker -

步骤 1:保存您的模型

如果您使用 TensorFlowPyTorch 等框架训练了模型,则可以将模型的权重和架构保存到 S3 存储桶。

请查看以下示例 -

import torch
import boto3

# Save a PyTorch model locally
torch.save(model.state_dict(), 'model.pth')

# Upload the model to S3
s3 = boto3.client('s3')
s3.upload_file('model.pth', 'your-s3-bucket-name', 'model/model.pth')

步骤 2:创建 SageMaker 模型

接下来,我们需要创建一个模型对象并指定托管模型的容器。您可以使用 SageMaker 的 Model 类来实现此目的。您还可以使用自定义 Docker 镜像来服务您的模型,如下所示 -

from sagemaker.model import Model

# Define the model
model = Model(model_data='s3://your-s3-bucket-name/model/model.pth',
              role=role,
              image_uri='your-custom-docker-image')

# Deploy the model
predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')

步骤 3:部署模型

创建模型后,将其部署到 SageMaker 端点以使其可用于推理,如下所示 -

# Perform inference using the deployed model
result = predictor.predict([[1.5, 2.5, 3.0]])
print(result)
广告