

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

# 自訂執行期環境
<a name="train-remote-decorator-customize"></a>

您可以自訂執行期環境，以便使用您偏好的本機整合式開發環境 (IDE)、SageMaker 筆記本或 SageMaker Studio Classic 筆記本來撰寫機器學習 (ML) 程式碼。SageMaker AI 將協助封裝並提交您的函式及其相依性，作為 SageMaker 訓練任務。這可讓您存取 SageMaker 訓練伺服器的容量，以便執行訓練工作。

遠端裝飾項目與調用函式的 `RemoteExecutor` 方法都允許使用者定義及自訂其執行期環境。您可以利用 `requirements.txt` 檔案或 conda 環境 YAML 檔案。

若要同時利用 conda 環境 YAML 檔案與 `requirements.txt` 檔案來自訂執行期環境，請參閱下列程式碼範例。

```
# specify a conda environment inside a yaml file
@remote(instance_type="{{ml.m5.large}}",
        image_uri = "{{my_base_python:latest}}", 
        dependencies = "./environment.yml{{}}")
def matrix_multiply(a, b):
    return np.matmul(a, b)

# use a requirements.txt file to import dependencies
@remote(instance_type="{{ml.m5.large}}",
        image_uri = "{{my_base_python:latest}}", 
        dependencies = '{{./requirements.txt}}')
def matrix_multiply(a, b):
    return np.matmul(a, b)
```

或者，您可以設定 `dependencies` 為 `auto_capture`，讓 SageMaker Python SDK 在已啟用的 conda 環境擷取已安裝的相依性。若要讓 `auto_capture` 以可靠的方式運作 ，需要以下內容：
+ 您必須擁有己啟用的 conda 環境。建議不要將 `base` conda 環境用於遠端工作，以便減少潛在的相依性衝突。不採用 `base` conda 環境還可讓您以更快速度進行遠端工作環境設定。
+ 您不能使用帶有參數 `--extra-index-url` 值的 pip 來安裝任何相依性。
+ 在本機開發環境，使用 conda 安裝的套件與使用 pip 安裝的套件之間，不得有任何相依性衝突。
+ 本機開發環境不得包含與 Linux 不相容的作業系統特定相依性。

如果 `auto_capture` 無法運作，建議您以 requirement.txt 或 conda environment.yaml 檔案形式傳入相依性，如本區段第一個程式碼範例所述。