

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à.

# Notebook di esempio ed esempi di codice per configurare le regole di Debugger
<a name="debugger-built-in-rules-example"></a>

**Nota**  
Amazon SageMaker Debugger non è più aperto a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. AWS continua a investire in miglioramenti della sicurezza e della disponibilità di Debugger, ma non prevediamo di introdurre nuove funzionalità. Per ulteriori informazioni, consulta [Modifica della disponibilità del debugger](debugger-availability-change.md). 

Nelle sezioni seguenti, vengono forniti taccuini ed esempi di codice su come utilizzare le regole di Debugger per monitorare i lavori di formazione. SageMaker 

**Topics**
+ [Notebook di esempio con regole integrate di Debugger](#debugger-built-in-rules-notebook-example)
+ [Codice di esempio con regole integrate di Debugger](#debugger-deploy-built-in-rules)
+ [Utilizzare le regole integrate di Debugger con le modifiche dei parametri](#debugger-deploy-modified-built-in-rules)

## Notebook di esempio con regole integrate di Debugger
<a name="debugger-built-in-rules-notebook-example"></a>

I seguenti taccuini di esempio mostrano come utilizzare le regole integrate di Debugger durante l'esecuzione di processi di formazione con Amazon AI: SageMaker 
+ [Utilizzo di una regola integrata in Debugger con SageMaker TensorFlow ](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_builtin_rule)
+ [Utilizzo di una regola integrata di SageMaker Debugger con Managed Spot Training e MXNet ](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/mxnet_spot_training)
+ [Utilizzo di una regola integrata nel SageMaker Debugger con modifiche ai parametri per un'analisi del lavoro di formazione in tempo reale con XGBoost ](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/xgboost_realtime_analysis)

Mentre eseguite i taccuini di esempio in SageMaker Studio, potete trovare la versione di prova del lavoro di formazione creata nella scheda Studio Experiment List. ** ** Ad esempio, come mostrato nella schermata seguente, è possibile trovare e aprire una finestra **Descrivi componente di prova** relativa al processo di addestramento corrente. Nella scheda Debugger, puoi verificare se le regole di Debugger `vanishing_gradient()` e `loss_not_decreasing()`, stanno monitorando la sessione di addestramento in parallelo. Per istruzioni complete su come trovare i componenti della versione di prova del lavoro di formazione nell'interfaccia utente di Studio, vedi [ SageMaker Studio - Visualizza esperimenti, prove e componenti di prova. ](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-tasks.html#studio-tasks-experiments)

![Un'immagine dell'esecuzione di un processo di formazione con le regole integrate di Debugger attivate in SageMaker Studio.](https://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-built-in-rule-studio.png)


Esistono due modi per utilizzare le regole integrate di Debugger nell'ambiente SageMaker AI: implementa le regole integrate man mano che vengono preparate o modifica i relativi parametri come preferisci. I seguenti argomenti mostrano come utilizzare le regole integrate con codici di esempio.

## Codice di esempio con regole integrate di Debugger
<a name="debugger-deploy-built-in-rules"></a>

Nell'esempio di codice riportato di seguito viene illustrato come impostare le regole integrate di Debugger utilizzando il metodo `Rule.sagemaker`. Per specificare le regole integrate da eseguire, utilizza l'operazione API `rules_configs` per richiamare le regole integrate. Per un elenco completo delle regole integrate di Debugger e dei valori dei parametri predefiniti, consulta [Elenco delle regole integrate di Debugger](debugger-built-in-rules.md).

```
import boto3
import sagemaker
from sagemaker.train import ModelTrainer
from sagemaker.core.debugger import Rule, CollectionConfig, rule_configs
from sagemaker.core.helper.session_helper import get_execution_role
built_in_rules=[ 
            Rule.sagemaker(rule_configs.vanishing_gradient()),
            Rule.sagemaker(rule_configs.loss_not_decreasing())
]

from sagemaker.core import image_uris
from sagemaker.train.configs import SourceCode, Compute

training_image = image_uris.retrieve(
    framework="tensorflow",
    region=boto3.Session().region_name,
    version="{{2.9.0}}",
    py_version="{{py39}}",
    instance_type="{{ml.p3.2xlarge}}",
    image_scope="training"
)

# construct a SageMaker AI ModelTrainer with the Debugger built-in rules
sagemaker_model_trainer=ModelTrainer(
    training_image=training_image,
    source_code=SourceCode(entry_script='directory/to/your_training_script.py'),
    role=get_execution_role(),
    base_job_name='debugger-built-in-rules-demo',
    compute=Compute(instance_type="{{ml.p3.2xlarge}}", instance_count=1),

    # debugger-specific arguments below
    rules=built_in_rules
)
sagemaker_model_trainer.train()
```

**Nota**  
Le regole integrate di Debugger vengono eseguite in parallelo al processo di addestramento. Il numero massimo di container di regole integrate per un processo di addestramento è 20. 

Per ulteriori informazioni sulla classe di regole Debugger, sui metodi e sui parametri, consulta la classe [ SageMaker Debugger Rule nell'SDK Amazon Python. ](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html) [ SageMaker ](https://sagemaker.readthedocs.io/en/stable) 

Per trovare un esempio di come modificare i parametri della regola di Debugger, consulta la sezione seguente [Utilizzare le regole integrate di Debugger con le modifiche dei parametri](#debugger-deploy-modified-built-in-rules).

## Utilizzare le regole integrate di Debugger con le modifiche dei parametri
<a name="debugger-deploy-modified-built-in-rules"></a>

Il seguente esempio di codice mostra la struttura delle regole integrate per regolare i parametri. In questo esempio, `stalled_training_rule` raccoglie la raccolta di tensori `losses` da un processo di addestramento ogni 50 fasi e una fase di valutazione ogni 10 fasi. Se il processo di addestramento inizia a bloccarsi e non raccoglie i risultati del tensore per 120 secondi, `stalled_training_rule` interrompe il processo di addestramento. 

```
import boto3
import time
import sagemaker
from sagemaker.train import ModelTrainer
from sagemaker.core.debugger import Rule, CollectionConfig, rule_configs
from sagemaker.core.helper.session_helper import get_execution_role

# call the built-in rules and modify the CollectionConfig parameters

base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time()))

built_in_rules_modified=[
    Rule.sagemaker(
        base_config=rule_configs.stalled_training_rule(),
        rule_parameters={
                'threshold': '120',
                'training_job_name_prefix': base_job_name_prefix,
                'stop_training_on_fire' : 'True'
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                      "train.save_interval": "50",
                      "eval.save_interval": "10"
                } 
            )
        ]
    )
]

from sagemaker.core import image_uris
from sagemaker.train.configs import SourceCode, Compute

training_image = image_uris.retrieve(
    framework="tensorflow",
    region=boto3.Session().region_name,
    version="{{2.9.0}}",
    py_version="{{py39}}",
    instance_type="{{ml.p3.2xlarge}}",
    image_scope="training"
)

# construct a SageMaker AI ModelTrainer with the modified Debugger built-in rule
sagemaker_model_trainer=ModelTrainer(
    training_image=training_image,
    source_code=SourceCode(entry_script='directory/to/your_training_script.py'),
    role=get_execution_role(),
    base_job_name=base_job_name_prefix,
    compute=Compute(instance_type="{{ml.p3.2xlarge}}", instance_count=1),

    # debugger-specific arguments below
    rules=built_in_rules_modified
)
sagemaker_model_trainer.train()
```