

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 利用推理管道进行批量转换
<a name="inference-pipeline-batch"></a>

要获取对整个数据集的推理，请在训练好的模型上运行批处理转换。要在完整数据集上运行推理，您可以在批量转换作业中使用创建并部署到端点上用于实时处理的同一个推理管道模型。要在管道中运行批量转换作业，您可以从 Amazon S3 下载输入数据，并在一个或多个 HTTP 请求中将这些数据发送到推理管道模型。有关演示如何为批量转换准备数据的示例，请参阅使用 Linea [r Learner 示例笔记本的 Amazon SageMaker 多模型终端节点中的 “第 2 节——使用 Scikit Lear](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/advanced_functionality/multi_model_linear_learner_home_value) n 预处理原始住房数据”。有关 Amazon A SageMaker I 批量转换的信息，请参阅[使用 Amazon A SageMaker I 进行批量转换以进行推理](batch-transform.md)。

**注意**  
要在包含 [Amazon A SageMaker I 内置算法](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html)的管道中使用自定义 Docker 镜像，您需要[亚马逊弹性容器注册表 (ECR) 策略](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)。您的 Amazon ECR 存储库必须向 SageMaker AI 授予提取映像的权限。有关更多信息，请参阅 [推理管道的 Amazon ECR 权限故障排除](inference-pipeline-troubleshoot.md#inference-pipeline-troubleshoot-permissions)。

以下示例展示了如何使用 [Amaz SageMaker on Python 软件开发工具包](https://sagemaker.readthedocs.io/en/stable)运行转换作业。在此示例中，`model_name`是结合了 SparkML XGBoost 和模型（在前面的示例中创建）的推理管道。`input_data_path` 指定的 Amazon S3 位置包含 CSV 格式的输入数据，这些数据要下载并发送到 Spark ML 模型。转换任务完成后，由指定的 Amazon S3 位置`output_data_path`包含 XGBoost 模型以 CSV 格式返回的输出数据。

```
import sagemaker
input_data_path = 's3://{}/{}/{}'.format(default_bucket, 'key', 'file_name')
output_data_path = 's3://{}/{}'.format(default_bucket, 'key')
transform_job = sagemaker.transformer.Transformer(
    model_name = model_name,
    instance_count = 1,
    instance_type = 'ml.m4.xlarge',
    strategy = 'SingleRecord',
    assemble_with = 'Line',
    output_path = output_data_path,
    base_transform_job_name='inference-pipelines-batch',
    sagemaker_session=sagemaker.Session(),
    accept = CONTENT_TYPE_CSV)
transform_job.transform(data = input_data_path, 
                        content_type = CONTENT_TYPE_CSV, 
                        split_type = 'Line')
```