Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Creazione di regole personalizzate di Debugger per l’analisi dei processi di addestramento
Puoi creare regole personalizzate per monitorare il tuo processo di addestramento utilizzando le API Debugger Rule e la libreria open source smdebug Python
Argomenti
Prerequisiti per la creazione di regole personalizzate di Debugger
Per creare regole personalizzate di Debugger, sono necessari i seguenti prerequisiti.
Il tuo script python personalizzato per le regole
URL del registro Amazon SageMaker Debugger per strumenti di valutazione delle regole personalizzati
Usa la libreria client smdebug
di Debugger per creare uno script Python con regole personalizzate
L'API smdebug
Rule fornisce un'interfaccia per configurare regole personalizzate. Il seguente script python è un esempio di come costruire una regola personalizzata CustomGradientRule
. Questa regola personalizzata del tutorial controlla se i gradienti stanno diventando troppo grandi e imposta la soglia predefinita su 10. La regola personalizzata richiede una prova di base creata da uno SageMaker stimatore quando avvia il processo di formazione.
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
È possibile aggiungere più classi di regole personalizzate quante ne si desidera nello stesso script Python e distribuirle in qualsiasi prova di processo di addestramento creando oggetti di regola personalizzati nella sezione seguente.
Usa le API Debugger per eseguire le tue regole personalizzate
Il seguente esempio di codice mostra come configurare una regola personalizzata con l'SDK Amazon SageMaker Python
from sagemaker.debugger import Rule, CollectionConfig custom_rule = Rule.custom( name='MyCustomRule', image_uri='759209512951.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rule-evaluator:latest', instance_type='ml.t3.medium', source='path/to/my_custom_rule.py', rule_to_invoke='CustomGradientRule', collections_to_save=[CollectionConfig("gradients")], rule_parameters={"threshold": "20.0"} )
L'elenco seguente illustra gli argomenti dell'API Rule.custom
di Debugger.
-
name
(str): specifica un nome di regola personalizzato desiderato. -
image_uri
(str): questa è l'immagine del container che ha la logica di comprendere la regola personalizzata. Reperisce e valuta le raccolte di tensori specificate salvate nel processo di addestramento. Puoi trovare l'elenco delle immagini di SageMaker Rule Evaluator open source da. URL del registro Amazon SageMaker Debugger per strumenti di valutazione delle regole personalizzati -
instance_type
(str): devi specificare un'istanza per creare un container docker per regole. Questo fa funzionare l'istanza parallelamente a un container di addestramento. -
source
(str): questo è il percorso locale o l'URI di Amazon S3 dello script di regole personalizzate. -
rule_to_invoke
(str): specifica la particolare implementazione della classe Rule nello script di regole personalizzato. SageMaker supporta una sola regola da valutare alla volta in un processo di regole. -
collections_to_save
(str): specifica quali raccolte di tensori verranno salvate per l'esecuzione della regola. -
rule_parameters
(dizionario): accetta input di parametri in un formato dizionario. È possibile regolare i parametri configurati nello script di regole personalizzate.
Dopo aver impostato l'custom_rule
oggetto, è possibile utilizzarlo per creare uno SageMaker stimatore per qualsiasi lavoro di formazione. Specifica entry_point
nello script di addestramento. Non è necessario apportare modifiche allo script di addestramento.
from sagemaker.tensorflow import TensorFlow estimator = TensorFlow( role=sagemaker.get_execution_role(), base_job_name='smdebug-custom-rule-demo-tf-keras', entry_point='path/to/your_training_script.py' train_instance_type='ml.p2.xlarge' ... # debugger-specific arguments below rules = [custom_rule] ) estimator.fit()
Per ulteriori varianti ed esempi avanzati di utilizzo delle regole personalizzate di Debugger, consulta i seguenti notebook di esempio.