

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用推論管道執行批次轉換
<a name="inference-pipeline-batch"></a>

若要取得整個資料集的推論，您可以在已訓練的模型上執行批次轉換。若要對整個資料集執行推論，您可以將為了即時處理而建立並部署到端點的相同推論管道模型，用於批次轉換任務。若要在管道中執行批次轉換工作，您可以從 Amazon S3 下載輸入資料，然後透過一或多個 HTTP 請求將資料傳送到推論管道模型。如需示範如何準備批次轉換資料的範例，請參閱[使用線性學習程式範例筆記本的 Amazon SageMaker 多模型端點](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/advanced_functionality/multi_model_linear_learner_home_value)的 “第 2 節 - 使用 Scikit Learn 預先處理原始存放資料”。如需 Amazon SageMaker AI 批次轉換的相關資訊，請參閱[使用 Amazon SageMaker AI 進行批次轉換以進行推論](batch-transform.md)。

**注意**  
若要在包含 [Amazon SageMaker AI 內建演算法](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html)的管道中使用自訂 Docker 映像檔，您需要 [Amazon Elastic Container Registry (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)。

以下範例示範如何使用 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) 執行轉換工作。在此範例中，`model_name` 是結合 SparkML 與 XGBoost 模型 (在先前範例中建立) 的推論管道。`input_data_path` 指定的 Amazon S3 位置包含要下載和傳送至 Spark ML 模型的輸入資料 (CSV 格式)。轉換工作完成之後，`output_data_path` 指定的 Amazon S3 位置會包含 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')
```