

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# PyTorch フレームワークプロセッサ
<a name="processing-job-frameworks-pytorch"></a>

PyTorch はオープンソースの機械学習フレームワークです。Amazon SageMaker Python SDK の `PyTorchProcessor` は、PyTorch スクリプトを使用して処理ジョブを実行する機能を提供します。を使用すると`PyTorchProcessor`、Amazon が構築した Docker コンテナをマネージド PyTorch 環境で活用できるため、独自のコンテナを持ち込む必要はありません。

次のコード例は、SageMaker AI によって提供および保守されている Docker イメージを使用して処理ジョブを実行する方法を示しています。ジョブを実行するとき、`source_dir` 引数にスクリプトと依存関係を含むディレクトリを指定でき、処理スクリプトの依存関係を指定する `requirements.txt` ファイルを `source_dir` ディレクトリ内に置くことができることにご注意ください。SageMaker Processing は、コンテナの `requirements.txt` に依存関係をインストールします。

SageMaker AI でサポートされている PyTorch バージョンについては、「[Available Deep Learning Container Images](https://github.com/aws/deep-learning-containers/blob/master/available_images.md)」を参照してください。

```
from sagemaker.core.resources import ProcessingJob
from sagemaker.core.helper.session_helper import get_execution_role

# Create a processing job with a PyTorch container
processing_job = ProcessingJob.create(
    processing_job_name='frameworkprocessor-PT',
    role_arn=get_execution_role(),
    app_specification={
        "image_uri": "{{pytorch-processing-image-uri}}",
        "container_entrypoint": ["python3", "/opt/ml/processing/input/code/{{processing-script.py}}"]
    },
    processing_resources={
        "cluster_config": {"instance_count": 1, "instance_type": "ml.m5.xlarge", "volume_size_in_gb": 30}
    },
    processing_inputs=[
        {"input_name": "data", "s3_input": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_INPUT_PATH}}}}", "local_path": "/opt/ml/processing/input", "s3_data_type": "S3Prefix", "s3_input_mode": "File"}},
        {"input_name": "code", "s3_input": {"s3_uri": "{{s3://path/to/scripts/}}", "local_path": "/opt/ml/processing/input/code", "s3_data_type": "S3Prefix", "s3_input_mode": "File"}}
    ],
    processing_output_config={
        "outputs": [
            {"output_name": "data_structured", "s3_output": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_OUTPUT_PATH}}}}", "local_path": "/opt/ml/processing/tmp/data_structured", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "train", "s3_output": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_OUTPUT_PATH}}}}", "local_path": "/opt/ml/processing/output/train", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "validation", "s3_output": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_OUTPUT_PATH}}}}", "local_path": "/opt/ml/processing/output/val", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "test", "s3_output": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_OUTPUT_PATH}}}}", "local_path": "/opt/ml/processing/output/test", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "logs", "s3_output": {"s3_uri": f"{{s3://{{BUCKET}}/{{S3_OUTPUT_PATH}}}}", "local_path": "/opt/ml/processing/logs", "s3_upload_mode": "EndOfJob"}}
        ]
    }
)
```

`requirements.txt` ファイルがある場合、コンテナにインストールするライブラリのリストである必要があります。`source_dir` のパスは、相対パス、絶対パス、または Amazon S3 URI パスのいずれかになります。ただし、Amazon S3 URI を使用する場合は、tar.gz ファイルを指している必要があります。`source_dir` に指定したディレクトリには複数のスクリプトを入れることができます。`PyTorchProcessor` クラスの詳細については、Amazon SageMaker Python SDK の「[PyTorch Estimator](https://sagemaker.readthedocs.io/en/stable/api/sagemaker_train.html)」を参照してください。