

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 utilizzando la libreria client di Debugger
<a name="debugger-custom-rules"></a>

Puoi creare regole personalizzate per monitorare il tuo lavoro di formazione utilizzando la regola Debugger APIs e la [libreria `smdebug` Python](https://github.com/awslabs/sagemaker-debugger/) open source che fornisce strumenti per creare contenitori di regole personalizzati.

## Prerequisiti per la creazione di una regola personalizzata
<a name="debugger-custom-rules-prerequisite"></a>

Per creare regole personalizzate di Debugger, sono necessari i seguenti prerequisiti.
+ [SageMaker Regola del debugger.API personalizzata](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.Rule.custom)
+ [La libreria Python open source smdebug](https://github.com/awslabs/sagemaker-debugger/)
+ Il tuo script python personalizzato per le regole
+ [Immagine Amazon SageMaker Debugger URIs per valutatori di regole personalizzati](debugger-reference.md#debuger-custom-rule-registry-ids)

**Topics**
+ [Prerequisiti per la creazione di una regola personalizzata](#debugger-custom-rules-prerequisite)
+ [Utilizzo della libreria client `smdebug` per creare una regola personalizzata come script Python](debugger-custom-rules-python-script.md)
+ [Usa il Debugger APIs per eseguire le tue regole personalizzate](debugger-custom-rules-python-sdk.md)

# Utilizzo della libreria client `smdebug` per creare una regola personalizzata come script Python
<a name="debugger-custom-rules-python-script"></a>

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 stimatore di SageMaker intelligenza artificiale 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 il Debugger APIs per eseguire le tue regole personalizzate
<a name="debugger-custom-rules-python-sdk"></a>

Il seguente esempio di codice mostra come configurare una regola personalizzata con l'SDK [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable). *Questo esempio presuppone che lo script di regole personalizzate creato nel passaggio precedente si trovi in '\$1custom\$1rule.py'. path/to/my*

```
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 open source di valutazione delle regole SageMaker AI da. [Immagine Amazon SageMaker Debugger URIs per valutatori di regole personalizzati](debugger-reference.md#debuger-custom-rule-registry-ids)
+ `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 L'intelligenza artificiale supporta solo una 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, puoi utilizzarlo per creare uno stimatore di SageMaker intelligenza artificiale 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.
+ [Monitora il tuo processo di formazione con le regole personalizzate di Amazon SageMaker Debugger](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_keras_custom_rule/tf-keras-custom-rule.html)
+ [PyTorch modello iterativo di potatura di e ResNet AlexNet](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/pytorch_iterative_model_pruning)
+ [Attiva Amazon CloudWatch Events utilizzando le regole del debugger per intraprendere un'azione in base allo stato della formazione con TensorFlow](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_action_on_rule)