本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用smdebug
用戶端程式庫建立自訂規則作為 Python 指令碼
此smdebug
規則API提供介面來設定您自己的自訂規則。下列 python 指令碼範例示範如何自建構自訂規則,CustomGradientRule
。本教學課程自訂規則會監控梯度是否變得太大,並將預設閾值設為 10。自訂規則會在啟動訓練任務時,採用 SageMaker 估算器建立的基本試驗。
from smdebug.rules.rule import Rule class CustomGradientRule(Rule): def __init__(self, base_trial, threshold=10.0): super().__init__(base_trial) self.threshold = float(threshold) def invoke_at_step(self, step): for tname in self.base_trial.tensor_names(collection="gradients"): t = self.base_trial.tensor(tname) abs_mean = t.reduction_value(step, "mean", abs=True) if abs_mean > self.threshold: return True return False
您可以在相同的 python 指令碼中新增任意多個自訂規則類別,並透過在以下區段建置自訂規則物件,將其部署至任何訓練任務試驗。