

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

# PyTorch 架構處理器
<a name="processing-job-frameworks-pytorch"></a>

PyTorch 是一種開放原始碼機器學習架構。Amazon SageMaker Python SDK 中的 `PyTorchProcessor` 提供您使用 PyTorch 指令碼執行處理任務的能力。使用 `PyTorchProcessor` 時，您可以運用 Amazon 建置的 Docker 容器與受管 PyTorch 環境，這樣您就不必使用自己的容器。

下列程式碼範例顯示如何使用 `PyTorchProcessor`，並透過 SageMaker AI 提供和維護的 Docker 映像檔來執行處理任務。請注意，執行任務時，您可以在 `source_dir` 引數中指定一個包含指令碼和相依性的目錄，而且可以在 `source_dir` 目錄中擁有一個 `requirements.txt` 檔案來指定處理指令碼的相依性。SageMaker Processing 會在容器中為您安裝 `requirements.txt` 中的相依性。

如需 SageMaker AI 支援的 PyTorch 版本，請參閱可用的[深度學習容器映像](https://github.com/aws/deep-learning-containers/blob/master/available_images.md)。

```
from sagemaker.pytorch.processing import PyTorchProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput
from sagemaker import get_execution_role

#Initialize the PyTorchProcessor
pytorch_processor = PyTorchProcessor(
    framework_version='1.8',
    role=get_execution_role(),
    instance_type='ml.m5.xlarge',
    instance_count=1,
    base_job_name='frameworkprocessor-PT'
)

#Run the processing job
pytorch_processor.run(
    code='{{processing-script.py}}',
    source_dir='{{scripts}}',
    inputs=[
        ProcessingInput(
            input_name='data',
            source=f'{{s3://{BUCKET}/{S3_INPUT_PATH}}}',
            destination='/opt/ml/processing/input'
        )
    ],
    outputs=[
        ProcessingOutput(output_name='data_structured', source='/opt/ml/processing/tmp/data_structured', destination=f'{{s3://{BUCKET}/{S3_OUTPUT_PATH}}}'),
        ProcessingOutput(output_name='train', source='/opt/ml/processing/output/train', destination=f'{{s3://{BUCKET}/{S3_OUTPUT_PATH}}}'),
        ProcessingOutput(output_name='validation', source='/opt/ml/processing/output/val', destination=f'{{s3://{BUCKET}/{S3_OUTPUT_PATH}}}'),
        ProcessingOutput(output_name='test', source='/opt/ml/processing/output/test', destination=f'{{s3://{BUCKET}/{S3_OUTPUT_PATH}}}'),
        ProcessingOutput(output_name='logs', source='/opt/ml/processing/logs', destination=f'{{s3://{BUCKET}/{S3_OUTPUT_PATH}}}')
    ]
)
```

如果您有一個 `requirements.txt` 檔案，該檔案應該會是您要在容器中安裝的程式庫清單。`source_dir` 的路徑可以是相對路徑、絕對路徑或 Amazon S3 URI 路徑。不過，如果您使用 Amazon S3 URI，那麼它必須指向一個 tar.gz 檔案。您可以在為 `source_dir` 指定的目錄中擁有多個指令碼。如要進一步了解 `PyTorchProcessor` 類別，請參閱 *Amazon SageMaker Python SDK* 中的 [PyTorch 估算器](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html)。