本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
定義訓練指標
SageMaker AI 會自動剖析訓練任務日誌,並將訓練指標傳送至 CloudWatch。根據預設,SageMaker AI 會傳送 SageMaker AI 任務和端點指標中列出的系統資源使用率指標。如果您希望 SageMaker AI 剖析日誌,並將自訂指標從自己的演算法訓練任務傳送至 CloudWatch,則需要在設定 SageMaker AI 訓練任務請求時傳遞指標名稱和規則表達式來指定指標定義。
您可以使用 SageMaker AI 主控台、SageMaker AI Python SDK
如果您使用自己的演算法,請執行下列動作:
-
確保演算法將您想要擷取的指標撰寫到日誌。
-
定義規則表達式,以便準確搜尋日誌來擷取您想要傳送至 CloudWatch 的指標值。
例如,假設您的演算法發出下列訓練錯誤和驗證錯誤的指標:
Train_error=0.138318; Valid_error=0.324557;
如果您想要在 CloudWatch 中監控這兩個指標,指標定義的字典看起來應該如下列範例所示:
[ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ]
在上述範例定義的 train:error 指標 regex 中,regex 的第一部分會尋找確切文字 "Train_error=",而表達式 (.*?); 會擷取第一個分號字元前顯示的任何字元。在這個表達式中,括號告知 regex 擷取其內部內容、. 代表任何字元、* 代表零個或多個,而 ? 代表僅擷取第一個 ; 字元執行個體之前的內容。
使用 SageMaker AI Python SDK 定義指標
當您初始化 Estimator 物件時,可透過 metric_definitions 引數形式指定指標名稱和規則表達式的清單,以定義您想要傳送至 CloudWatch 的指標。例如,如果您想要在 CloudWatch 中監控 train:error 和 validation:error 這兩個指標,您的 Estimator 初始化將如下列範例所示:
import sagemaker from sagemaker.estimator import Estimator estimator = Estimator( image_uri="your-own-image-uri", role=sagemaker.get_execution_role(), sagemaker_session=sagemaker.Session(), instance_count=1, instance_type='ml.c4.xlarge', metric_definitions=[ {'Name': 'train:error', 'Regex': 'Train_error=(.*?);'}, {'Name': 'validation:error', 'Regex': 'Valid_error=(.*?);'} ] )
如需使用 Amazon SageMaker Python SDK
使用 SageMaker AI 主控台定義指標
如果您在建立訓練任務時,在 SageMaker AI 主控台中選擇在 ECR 中您自己的演算法容器選項做為演算法來源,請在指標區段中新增指標定義。下列螢幕擷取畫面顯示新增範例指標名稱和對應的規則表達式後應呈現的樣子。
使用低階 SageMaker AI API 定義指標
在您傳遞至 CreateTrainingJob 操作之 AlgorithmSpecification 輸入參數的 MetricDefinitions 欄位中,指定指標名稱清單和規則表達式,以定義您想要傳送到 CloudWatch 的指標。例如,如果您想要在 CloudWatch 中監控 train:error 和 validation:error 這兩個指標,您的 AlgorithmSpecification 將如下列範例所示:
"AlgorithmSpecification": { "TrainingImage":your-own-image-uri, "TrainingInputMode": "File", "MetricDefinitions" : [ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ] }
如需使用低階 SageMaker AI API 定義和執行訓練任務的詳細資訊,請參閱 CreateTrainingJob。