

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Lista de reglas integradas del depurador
<a name="debugger-built-in-rules"></a>

Puede utilizar las reglas integradas del depurador proporcionado por el depurador de Amazon SageMaker para analizar las métricas y los tensores recopilados durante el entrenamiento de los modelos. A continuación, se enumeran las reglas del depurador, incluida información y un ejemplo sobre cómo configurar e implementar cada regla integrada.

Las reglas integradas del depurador monitorizan diversas condiciones comunes que son fundamentales para el éxito de un trabajo de entrenamiento. Puede llamar a las reglas integradas mediante el [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) o las operaciones de la API de SageMaker de bajo nivel. 

El uso de reglas integradas no conlleva ningún costo adicional. Para obtener más información acerca de la facturación, consulte la página [Precios de Amazon SageMaker](https://aws.amazon.com/sagemaker/pricing/).

**nota**  
El número máximo de reglas integradas que se pueden vincularse a un trabajo de entrenamiento es de 20. El depurador de SageMaker gestiona completamente las reglas integradas y analiza su trabajo de entrenamiento de forma sincrónica.

**importante**  
Para utilizar las nuevas características del depurador, debe actualizar el SageMaker Python SDK y la biblioteca cliente SMDebug. En su kernel de iPython, cuaderno de Jupyter o entorno de JupyterLab, ejecute el siguiente código para instalar las últimas versiones de las bibliotecas y reiniciar el kernel.  

```
import sys
import IPython
!{sys.executable} -m pip install -U sagemaker smdebug
IPython.Application.instance().kernel.do_shutdown(True)
```

## Regla de depurador
<a name="debugger-built-in-rules-Rule"></a>

Las siguientes reglas son las reglas integradas del depurador que pueden llamarse mediante el classmethod `Rule.sagemaker`.

Depurador: reglas integradas para generar informes de entrenamiento


| Ámbito de validez | Reglas integradas | 
| --- | --- | 
| Informe de entrenamiento para el trabajo de entrenamiento de SageMaker AI XGBoost |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/debugger-built-in-rules.html)  | 

Reglas integradas en el depurador para depurar los datos de entrenamiento del modelo (tensores de salida)


| Ámbito de validez | Reglas integradas | 
| --- | --- | 
| Marcos de aprendizaje profundo (TensorFlow, Apache MXNet y PyTorch) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/debugger-built-in-rules.html)  | 
| Marcos de aprendizaje profundo (TensorFlow, MXNet y PyTorch) y el algoritmo XGBoost  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/debugger-built-in-rules.html)  | 
| Aplicaciones de aprendizaje profundo |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/debugger-built-in-rules.html)  | 
| Algoritmo XGBoost |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/debugger-built-in-rules.html)  | 

**Para usar las reglas integradas con los valores de los parámetros predeterminados**, utilice el siguiente formato de configuración:

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs

rules = [
    Rule.sagemaker(rule_configs.built_in_rule_name_1()),
    Rule.sagemaker(rule_configs.built_in_rule_name_2()),
    ...
    Rule.sagemaker(rule_configs.built_in_rule_name_n())
]
```

**Para usar las reglas integradas con la personalización de los valores de los parámetros**, utilice el siguiente formato de configuración:

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs

rules = [
    Rule.sagemaker(
        base_config=rule_configs.built_in_rule_name(),
        rule_parameters={
                "key": "value"
        }
        collections_to_save=[ 
            CollectionConfig(
                name="tensor_collection_name", 
                parameters={
                    "key": "value"
                } 
            )
        ]
    )
]
```

Para encontrar las claves disponibles del parámetro `rule_parameters`, consulte las tablas de descripción de los parámetros.

Se proporcionan ejemplos de códigos de configuración de reglas para cada regla integrada a continuación de las tablas de descripción de parámetros.
+ Para obtener instrucciones completas y ejemplos del uso de las reglas integradas del depurador, consulte [Código de ejemplo de reglas integradas del depurador](debugger-built-in-rules-example.md#debugger-deploy-built-in-rules).
+ Para obtener instrucciones completas sobre el uso de las reglas integradas con las operaciones de la API de SageMaker de bajo nivel, consulte [Configurar el depurador mediante SageMaker la API](debugger-createtrainingjob-api.md).

## CreateXgboostReport
<a name="create-xgboost-report"></a>

La regla CreateXGBoostReport recopila los tensores de salida de un trabajo de entrenamiento de XGBoost y genera automáticamente un informe de entrenamiento completo. Puede descargar un informe completo de creación de perfiles mientras se esté realizando un trabajo de entrenamiento o una vez finalizado el trabajo de entrenamiento, y comprobar el progreso del entrenamiento o el resultado final de la misma. La regla CreateXGBoostReport recopila los siguientes tensores de salida de forma predeterminada: 
+ `hyperparameters`: se guarda en el primer paso
+ `metrics`: ahorra pérdidas y precisión cada 5 pasos
+ `feature_importance`: se guarda cada 5 pasos
+ `predictions`: se guarda cada 5 pasos
+ `labels`: se guarda cada 5 pasos

Descripciones de parámetros para la regla CreateXgboostReport


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial | El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual. **Obligatorio** Valores válidos: string  | 

```
rules=[
    Rule.sagemaker(
        rule_configs.create_xgboost_report()
    )  
]
```

## DeadRelu
<a name="dead-relu"></a>

Esta regla detecta cuando el porcentaje de funciones de activación de unidad lineal rectificada (ReLU) en una prueba se considera muerto porque su actividad de activación ha caído por debajo de un determinado umbral. Si el porcentaje de ReLU inactivas en una capa es mayor que el valor `threshold_layer` de ReLU inactivas, la regla devuelve `True`.

Descripciones de parámetros para la regla DeadRelu


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| tensor\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas  Valor predeterminado: `".*relu_output"`  | 
| threshold\$1inactivity |  Define un nivel de actividad por debajo del cual se considera que una ReLU está muerta. Una ReLU podría estar activo al comienzo de una prueba y luego morir lentamente durante el proceso de entrenamiento. Si la ReLU está activa menos de `threshold_inactivity`, se considera que está muerta. **Opcional** Valores válidos: número flotante Valores predeterminados: `1.0` (en porcentaje)  | 
| threshold\$1layer |  Devuelve `True` si el porcentaje de ReLU inactivas en una capa es mayor que `threshold_layer`. Devuelve `False` si el porcentaje de ReLU inactivas en una capa es menor que `threshold_layer`. **Opcional** Valores válidos: número flotante Valores predeterminados: `50.0` (en porcentaje)  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.dead_relu(),
        rule_parameters={
                "tensor_regex": ".*relu_output|.*ReLU_output",
                "threshold_inactivity": "1.0",
                "threshold_layer": "50.0"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_relu_collection", 
                parameters={
                    "include_regex: ".*relu_output|.*ReLU_output",
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

**nota**  
Esta regla no está disponible para el algoritmo XGBoost.

## ExplodingTensor
<a name="exploding-tensor"></a>

Esta regla detecta si los tensores emitidos durante el entrenamiento tienen valores no finitos, infinitos o NaN (no un número). Si se detecta un valor no finito, la regla devuelve `True`.

Descripciones de parámetros para la regla ExplodingTensor


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| collection\$1names |  Lista de nombres de colección cuyos tensores inspecciona la regla. **Opcional** Valores válidos: string Valor predeterminado: `None`  | 
| tensor\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: string  Valor predeterminado: `None`  | 
| only\$1nan |   `True` para monitorizar los tensores `base_trial` solo para valores `NaN` y no para infinito.  `False` para tratar tanto `NaN` como infinito como valores de explosión y para monitorizar ambos. **Opcional** Valor predeterminado: `False`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.exploding_tensor(),
        rule_parameters={
                "tensor_regex": ".*gradient",
                "only_nan": "False"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="gradients", 
                parameters={
                    "save_interval": "500"
                }
            )
        ]
    )
]
```

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

**nota**  
Esta regla no está disponible para el algoritmo XGBoost.

## PoorWeightInitialization
<a name="poor-weight-initialization"></a>

 Esta regla detecta si los parámetros del modelo se han inicializado mal. 

Una buena inicialización rompe la simetría de los pesos y gradientes en una red neuronal y mantiene variaciones de activación proporcionales a través de las capas. De lo contrario, la red neuronal no aprende eficazmente. Inicializadores como Xavier pretenden mantener la varianza constante a través de las activaciones, lo cual es especialmente relevante para entrenar redes neuronales muy profundas. Una inicialización demasiado pequeña puede dar lugar a la desaparición de gradientes. Una inicialización demasiado grande puede dar lugar a la explosión de gradientes. Esta regla comprueba la variación de las entradas de activación a través de las capas, la distribución de gradientes y la convergencia de pérdidas para los pasos iniciales para determinar si una red neuronal se ha inicializado mal.

Descripciones de parámetros para la regla PoorWeightInitialization


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| activation\$1inputs\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: string Valor predeterminado: `".*relu_input"`  | 
| threshold |  Si la relación entre la varianza mínima y máxima de pesos por capa supera `threshold` en un paso, la regla vuelve `True`. **Opcional** Valores válidos: número flotante Valor predeterminado: `10.0`  | 
| distribution\$1range |  Si la diferencia mínima entre los percentiles 5.º y 95.º de la distribución de gradiente es menor que la `distribution_range`, la regla devuelve `True`. **Opcional** Valores válidos: número flotante Valor predeterminado: `0.001`  | 
| patience |  El número de pasos que esperar hasta que se considere que la pérdida ya no está disminuyendo. **Opcional** Valores válidos: número entero Valor predeterminado: `5`  | 
| steps |  El número de pasos que analiza esta regla. Por lo general, solo tiene que verificar las primeras iteraciones. **Opcional** Valores válidos: número flotante Valor predeterminado: `10`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.poor_weight_initialization(),
        rule_parameters={
                "activation_inputs_regex": ".*relu_input|.*ReLU_input",
                "threshold": "10.0",
                "distribution_range": "0.001",
                "patience": "5",
                "steps": "10"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_relu_collection", 
                parameters={
                    "include_regex": ".*relu_input|.*ReLU_input",
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

**nota**  
Esta regla no está disponible para el algoritmo XGBoost.

## SaturatedActivation
<a name="saturated-activation"></a>

Esta regla detecta si las capas de activación tanh y sigmoide se están saturando. Una capa de activación se satura cuando la entrada de la capa está cerca del máximo o mínimo de la función de activación. El mínimo y máximo de las funciones de activación tanh y sigmoide se definen por sus respectivos valores `min_threshold` y `max_thresholds`. Si la actividad de un nodo cae por debajo del porcentaje `threshold_inactivity`, se considera saturado. Si más de un porcentaje `threshold_layer` de los nodos están saturados, la regla devuelve `True`.

Descripciones de parámetros para la regla SaturatedActivation


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| collection\$1names |  Lista de nombres de colección cuyos tensores inspecciona la regla. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas Valor predeterminado: none  | 
| tensor\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: string  Valor predeterminado: `".*tanh_input\|.*sigmoid_input".`  | 
| threshold\$1tanh\$1min |  Los umbrales mínimo y máximo que definen los extremos de la entrada para una función de activación tanh, definidos como: `(min_threshold, max_threshold)`. Los valores predeterminados se determinan en función de un umbral de gradiente de desvanecimiento de 0,0000001. **Opcional** Valores válidos: número flotante Valores predeterminados: `-9.4999`  | 
| threshold\$1tanh\$1max |  Los umbrales mínimo y máximo que definen los extremos de la entrada para una función de activación tanh, definidos como: `(min_threshold, max_threshold)`. Los valores predeterminados se determinan en función de un umbral de gradiente de desvanecimiento de 0,0000001. **Opcional** Valores válidos: número flotante Valores predeterminados: `9.4999`  | 
| threshold\$1sigmoid\$1min |  Los umbrales mínimo y máximo que definen los extremos de la entrada para una función de activación sigmoide, definidos como: `(min_threshold, max_threshold)`. Los valores predeterminados se determinan en función de un umbral de gradiente de desvanecimiento de 0,0000001. **Opcional** Valores válidos: número flotante Valores predeterminados: `-23`  | 
| threshold\$1sigmoid\$1max |  Los umbrales mínimo y máximo que definen los extremos de la entrada para una función de activación sigmoide, definidos como: `(min_threshold, max_threshold)`. Los valores predeterminados se determinan en función de un umbral de gradiente de desvanecimiento de 0,0000001. **Opcional** Valores válidos: número flotante Valores predeterminados: `16.99999`  | 
| threshold\$1inactivity |  Porcentaje de inactividad por debajo del cual se considera que la capa de activación está saturada. La activación podría estar activa al comienzo de una prueba y luego volverse lentamente menos activa durante el proceso de entrenamiento. **Opcional** Valores válidos: número flotante Valores predeterminados: `1.0`  | 
| threshold\$1layer |  Devuelve `True` si el número de activaciones saturadas en una capa es mayor que el porcentaje `threshold_layer`. Devuelve `False` si el número de activaciones saturadas en una capa es menor que el porcentaje `threshold_layer`. **Opcional** Valores válidos: número flotante Valores predeterminados: `50.0`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.saturated_activation(),
        rule_parameters={
                "tensor_regex": ".*tanh_input|.*sigmoid_input",
                "threshold_tanh_min": "-9.4999",
                "threshold_tanh_max": "9.4999",
                "threshold_sigmoid_min": "-23",
                "threshold_sigmoid_max": "16.99999",
                "threshold_inactivity": "1.0",
                "threshold_layer": "50.0"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_activations_collection",
                parameters={
                    "include_regex": ".*tanh_input|.*sigmoid_input"
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

**nota**  
Esta regla no está disponible para el algoritmo XGBoost.

## VanishingGradient
<a name="vanishing-gradient"></a>

Esta regla detecta si los gradientes de una prueba se vuelven extremadamente pequeños o caen a una magnitud cero. Si la media de los valores absolutos de los gradientes cae por debajo de un `threshold` especificado, la regla devuelve `True`.

Descripciones de parámetros para la regla VanishingGradient


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| threshold | Valor en el que se determina que el gradiente está desapareciendo.**Opcional**Valores válidos: número flotanteValor predeterminado: `0.0000001`. | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.vanishing_gradient(),
        rule_parameters={
                "threshold": "0.0000001"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="gradients", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

**nota**  
Esta regla no está disponible para el algoritmo XGBoost.

## WeightUpdateRatio
<a name="weight-update-ratio"></a>

Esta regla hace un seguimiento de la proporción de actualizaciones a ponderaciones durante el entrenamiento y detecta si esa proporción es demasiado grande o demasiado pequeña. Si la proporción de actualizaciones a ponderaciones es mayor que `large_threshold value` o si esta proporción es menor que `small_threshold`, la regla devuelve `True`.

Las condiciones para el entrenamiento son mejores cuando las actualizaciones son proporcionales a los gradientes. Las actualizaciones excesivamente grandes pueden alejar las ponderaciones de los valores óptimos y las actualizaciones muy pequeñas dan lugar a una convergencia muy lenta. Esta regla requiere que haya pesos disponibles para dos pasos de entrenamiento y `train.save_interval` debe establecerse en `num_steps`.

Descripciones de parámetros para la regla WeightUpdateRatio


| Nombre del parámetro, | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| num\$1steps |  El número de pasos en los que comprueba la regla para determinar si el tensor ha cambiado.  El número de pasos a través de los cuales desea comparar las relaciones de ponderación. Si no transfiere ningún valor, la regla se ejecuta de forma predeterminada frente al paso actual y al paso guardado inmediatamente anterior. Si anula el valor predeterminado transfiriendo un valor para este parámetro, la comparación se realiza entre las ponderaciones en el paso `s` y en un paso que es `>= s - num_steps`. **Opcional** Valores válidos: número entero Valor predeterminado: `None`  | 
| large\$1threshold |  El valor máximo que puede tomar la proporción de actualizaciones a ponderaciones antes de la regla devuelve `True`.  **Opcional** Valores válidos: número flotante Valor predeterminado: `10.0`  | 
| small\$1threshold |  El valor mínimo que puede tomar la proporción de actualizaciones a ponderaciones, por debajo del cual la regla devuelve `True`. **Opcional** Valores válidos: número flotante Valor predeterminado: `0.00000001`  | 
| epsilon |  Una pequeña constante utilizada para garantizar que el depurador no se divide por cero al calcular la proporción de actualizaciones a ponderaciones. **Opcional** Valores válidos: número flotante Valor predeterminado: `0.000000001`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.weight_update_ratio(),
        rule_parameters={
                "num_steps": "100",
                "large_threshold": "10.0",
                "small_threshold": "0.00000001",
                "epsilon": "0.000000001"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="weights", 
                parameters={
                    "train.save_interval": "100"
                } 
            )
        ]
    )
]
```

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

**nota**  
Esta regla no está disponible para el algoritmo XGBoost.

## AllZero
<a name="all-zero"></a>

Esta regla detecta si todos o un porcentaje especificado de los valores del tensor son cero.

Esta regla se puede aplicar a uno de los marcos de aprendizaje profundo admitidos (TensorFlow, MXNet y PyTorch) o al algoritmo XGBoost. Debe especificar el parámetro `collection_names` o `tensor_regex`. Si se especifican ambos parámetros, la regla inspecciona la unión de tensores de ambos conjuntos.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de parámetros para la regla AllZero


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| collection\$1names |  Lista de nombres de colección cuyos tensores inspecciona la regla. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas Valor predeterminado: `None`  | 
| tensor\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas Valor predeterminado: `None`  | 
| threshold |  Especifica el porcentaje de valores en el tensor que debe ser cero para que se invoque esta regla.  **Opcional** Valores válidos: número flotante Valor predeterminado: 100 (en porcentaje)  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.all_zero(),
        rule_parameters={
                "tensor_regex": ".*",
                "threshold": "100"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="all", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## ClassImbalance
<a name="class-imbalance"></a>

Esta regla mide los desequilibrios de muestreo entre clases y devuelve errores si el desequilibrio supera un umbral o si se producen demasiados errores para clases subrepresentadas como resultado del desequilibrio.

Los modelos de clasificación requieren clases bien equilibradas en el conjunto de datos de entrenamiento o una ponderación/muestreo adecuada de las clases durante el entrenamiento. La regla realiza las siguientes comprobaciones:
+  Cuenta las incidencias por clase. Si la relación entre el número de muestras entre la clase menor y la mayor es mayor que `threshold_imbalance`, se produce un error.
+  Comprueba la precisión de la predicción por clase. Si el remuestreo o la ponderación no se han aplicado correctamente, el modelo puede alcanzar una alta precisión para la clase con muchas muestras de entrenamiento, pero baja precisión para las clases con pocas muestras de entrenamiento. Si una fracción de las predicciones erróneas para una determinada clase supera `threshold_misprediction`, se produce un error.

Esta regla se puede aplicar a uno de los marcos de aprendizaje profundo admitidos (TensorFlow, MXNet y PyTorch) o al algoritmo XGBoost.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de parámetros para la regla ClassImbalance


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| threshold\$1imbalance |  El desequilibrio aceptable entre el número de muestras en la clase menor y en la clase mayor. Si se supera este valor de umbral se genera un error. **Opcional** Valores válidos: número flotante Valor predeterminado: `10`  | 
| threshold\$1misprediction |  Un límite en la fracción de predicciones erróneas permitidas para cada clase. Si se supera este umbral se genera un error. Las clases insuficientemente representadas corren el mayor riesgo de superar este umbral.  **Opcional** Valores válidos: número flotante Valor predeterminado: `0.7`  | 
| samples |  El número de etiquetas que se deben procesar antes de evaluar un desequilibrio. Es posible que la regla no se active hasta que haya visto suficientes muestras en varios pasos. Cuantas más clases contenga el conjunto de datos, mayor será este número `sample`.  **Opcional** Valores válidos: número entero Valor predeterminado: `500` (suponiendo un conjunto de datos como MNIST con 10 clases)  | 
| argmax |  Si es `True`, [np.argmax](https://docs.scipy.org/doc/numpy-1.9.3/reference/generated/numpy.argmax.html) se aplica al tensor de predicción. Necesario cuando tiene un vector de probabilidades para cada clase. Se utiliza para determinar qué clase tiene la probabilidad más alta. **Condicional** Valores válidos: booleano Valor predeterminado: `False`  | 
| labels\$1regex |  El nombre del tensor que contiene las etiquetas. **Opcional** Valores válidos: string Valor predeterminado: `".*labels"`  | 
| predictions\$1regex |  El nombre del tensor que contiene las predicciones. **Opcional** Valores válidos: string Valor predeterminado: `".*predictions"`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.class_imbalance(),
        rule_parameters={
                "threshold_imbalance": "10",
                "threshold_misprediction": "0.7",
                "samples": "500",
                "argmax": "False",
                "labels_regex": ".*labels",
                "predictions_regex": ".*predictions"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_output_collection",
                parameters={
                    "include_regex": ".*labels|.*predictions",
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## LossNotDecreasing
<a name="loss-not-decreasing"></a>

Esta regla detecta cuando la pérdida no está disminuyendo de valor a un ritmo suficiente. Estas pérdidas deben ser escalares. 

Esta regla se puede aplicar a uno de los marcos de aprendizaje profundo admitidos (TensorFlow, MXNet y PyTorch) o al algoritmo XGBoost. Debe especificar el parámetro `collection_names` o `tensor_regex`. Si se especifican ambos parámetros, la regla inspecciona la unión de tensores de ambos conjuntos.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de parámetros para la regla LossNotDecreasing


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| collection\$1names |  Lista de nombres de colección cuyos tensores inspecciona la regla. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas Valor predeterminado: `None`  | 
| tensor\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas  Valor predeterminado: `None`  | 
| use\$1losses\$1collection |  Si se establece en `True`, busca pérdidas en la colección denominada "pérdidas" cuando la colección está presente. **Opcional** Valores válidos: booleano Valor predeterminado: `True`  | 
| num\$1steps |  El número mínimo de pasos después de los cuales la regla comprueba si la pérdida ha disminuido. La evaluación de reglas sucede cada `num_steps`. La regla compara la pérdida de este paso con la pérdida de un paso que está por lo menos `num_steps` por detrás del paso actual. Por ejemplo, supongamos que la pérdida se guarda cada tres pasos, pero `num_steps` se establece en 10. En el paso 21, la pérdida del paso 21 se compara con la pérdida del paso 9. El siguiente paso en el que se comprueba la pérdida es el paso 33, porque diez pasos desde el paso 21 es el paso 31 y en los pasos 31 y 32 la pérdida no se guarda.  **Opcional** Valores válidos: número entero Valor predeterminado: `10`  | 
| diff\$1percent |  La diferencia porcentual mínima que debe disminuir la pérdida entre `num_steps`. **Opcional** Valores válidos: `0.0` < número flotante < `100` Valor predeterminado: `0.1` (en porcentaje)  | 
| increase\$1threshold\$1percent |  El porcentaje límite máximo que se permite que aumente la pérdida en caso de pérdida ha ido aumentando **Opcional** Valores válidos: `0` < número flotante < `100` Valor predeterminado: `5` (en porcentaje)  | 
| mode |  El nombre del modo de depurador para consultar los valores de tensor para la comprobación de reglas. Si no se supera, la regla comprueba en orden de forma predeterminada `mode.EVAL`, `mode.TRAIN` y `mode.GLOBAL`.  **Opcional** Valores válidos: string (`EVAL`, `TRAIN` o `GLOBAL`) Valor predeterminado: `GLOBAL`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.loss_not_decreasing(),
        rule_parameters={
                "tensor_regex": ".*",
                "use_losses_collection": "True",
                "num_steps": "10",
                "diff_percent": "0.1",
                "increase_threshold_percent": "5",
                "mode": "GLOBAL"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## Overfit
<a name="overfit"></a>

Esta regla detecta si el modelo está sobreajustado a los datos de entrenamiento comparando la validación y las pérdidas de entrenamiento.

Esta regla se puede aplicar a uno de los marcos de aprendizaje profundo admitidos (TensorFlow, MXNet y PyTorch) o al algoritmo XGBoost.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

**nota**  
Una forma estándar de evitar el sobreajuste consiste en regularizar el modelo.

Descripciones de parámetros para la regla Overfit


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| tensor\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas  Valor predeterminado: none  | 
| start\$1step |  El paso a partir del cual empezar a comparar la validación y la pérdida de entrenamiento. **Opcional** Valores válidos: número entero Valor predeterminado: `0`  | 
| patience |  El número de pasos para los que se permite que `ratio_threshold` supere el valor establecido antes de que el modelo se considere sobreajuste. **Opcional** Valores válidos: número entero Valor predeterminado: `1`  | 
| ratio\$1threshold |  La proporción máxima de la diferencia entre la pérdida media de validación y la pérdida media de entrenamiento respecto de la pérdida media de entrenamiento. Si se supera este umbral en un número de pasos `patience`, el modelo está sobreajustando y la regla devuelve `True`. **Opcional** Valores válidos: número flotante Valor predeterminado: `0.1`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.overfit(),
        rule_parameters={
                "tensor_regex": ".*",
                "start_step": "0",
                "patience": "1",
                "ratio_threshold": "0.1"
        },
        collections_to_save=[
            CollectionConfig(
                name="losses", 
                parameters={
                    "train.save_interval": "100",
                    "eval.save_interval": "10"
                } 
            )
        ]
    )
]
```

## Overtraining
<a name="overtraining"></a>

Esta regla detecta si un modelo se está sobreentrenando. Tras varias iteraciones de entrenamiento en un modelo que se comporta bien (disminuyen tanto las pérdidas de entrenamiento como las de validación), el modelo se acerca al mínimo de la función de pérdida y ya no mejora. Si el modelo sigue entrenándose, puede ocurrir que la pérdida de validación comience a aumentar, ya que el modelo empezará a sobreajustarse. Esta regla establece umbrales y condiciones para determinar si el modelo no mejora y evita problemas de sobreajuste debidos al sobreentrenamiento.

Esta regla se puede aplicar a uno de los marcos de aprendizaje profundo admitidos (TensorFlow, MXNet y PyTorch) o al algoritmo XGBoost.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

**nota**  
El sobreentrenamiento puede evitarse mediante una detención temprana. Para obtener información sobre la parada temprana, consulte [Detener trabajos de entrenamiento pronto](automatic-model-tuning-early-stopping.md). Para ver un ejemplo que muestre cómo usar el entrenamiento de spot con el depurador, consulte [Habilitar el entrenamiento de spot con el depurador de Amazon SageMaker](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/mxnet_spot_training/mxnet-spot-training-with-sagemakerdebugger.html). 

Descripciones de parámetros para la regla Overtraining


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| patience\$1train |  El número de pasos a esperar antes de que se considere que la pérdida de entrenamiento que ya no mejora. **Opcional** Valores válidos: número entero Valor predeterminado: `5`  | 
| patience\$1validation | Se considera que el número de pasos a esperar antes de la pérdida de validación ya no mejora.**Opcional**Valores válidos: número enteroValor predeterminado: `10` | 
| delta |  El umbral mínimo que debe mejorar el error antes de que se considere como un nuevo óptimo. **Opcional** Valores válidos: número flotante Valor predeterminado: `0.01`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.overtraining(),
        rule_parameters={
                "patience_train": "5",
                "patience_validation": "10",
                "delta": "0.01"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## SimilarAcrossRuns
<a name="similar-across-runs"></a>

Esta regla compara los tensores recopilados de una prueba base con los tensores de otra prueba. 

Esta regla se puede aplicar a uno de los marcos de aprendizaje profundo admitidos (TensorFlow, MXNet y PyTorch) o al algoritmo XGBoost.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de parámetros para la regla SimilarAcrossRuns


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| other\$1trials |  El nombre de un trabajo de entrenamiento completado cuyos tensores desea comparar con los tensores obtenidos del actual `base_trial`. **Obligatorio** Valores válidos: string  | 
| collection\$1names |  Lista de nombres de colección cuyos tensores inspecciona la regla. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas Valor predeterminado: none  | 
| tensor\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas  Valor predeterminado: none  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.similar_across_runs(),
        rule_parameters={
                "other_trials": "<specify-another-job-name>",
                "collection_names": "losses",
                "tensor_regex": ".*"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## StalledTrainingRule
<a name="stalled-training"></a>

StalledTrainingRule detecta si no se ha realizado ningún progreso en el trabajo de entrenamiento y detiene el trabajo de entrenamiento si se activa la regla. Esta regla requiere que los tensores se guarden periódicamente en un intervalo de tiempo definido por su parámetro `threshold`. Esta regla sigue monitoreando la presencia de nuevos tensores y, si no se ha emitido ningún tensor nuevo para el intervalo umbral, se activa la regla. 

Descripciones de los parámetros de la regla StalledTrainingRule


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| threshold |  Un umbral que define el tiempo en segundos que la regla espera a que se produzca una salida tensorial hasta que se desencadene un problema de entrenamiento estancado. El valor predeterminado es de 1800 segundos. **Opcional** Valores válidos: número entero Valor predeterminado: `1800`  | 
| stop\$1training\$1on\$1fire |  Si se establece en `True`, compruebe si el trabajo de entrenamiento base genera tensores en "`threshold`" segundos. **Opcional** Valores válidos: booleano Valor predeterminado: `False`  | 
| training\$1job\$1name\$1prefix |  El prefijo del nombre de trabajo de entrenamiento base. Si `stop_training_on_fire` es true, la regla busca trabajos de entrenamiento de SageMaker con este prefijo en la misma cuenta. Si se detecta una inactividad, la regla realiza una acción `StopTrainingJob`. Tenga en cuenta que si se encuentran varios trabajos con el mismo prefijo, la regla omite la terminación. Es importante que el prefijo sea único para cada trabajo de entrenamiento. **Opcional** Valores válidos: string  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.stalled_training_rule(),
        rule_parameters={
                "threshold": "1800",
                "stop_training_on_fire": "True",
                "training_job_name_prefix": "<specify-training-base-job-name>"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## TensorVariance
<a name="tensor-variance"></a>

Esta regla detecta si tiene tensores con variaciones muy altas o bajas. Variaciones muy altas o bajas en un tensor podrían dar lugar a la saturación neuronal, lo que reduce la capacidad de aprendizaje de la red neuronal. Una variación muy alta en los tensores también puede dar lugar finalmente a la explosión de tensores. Utilice esta regla para detectar estos problemas con antelación.

Esta regla se puede aplicar a uno de los marcos de aprendizaje profundo admitidos (TensorFlow, MXNet y PyTorch) o al algoritmo XGBoost. Debe especificar el parámetro `collection_names` o `tensor_regex`. Si se especifican ambos parámetros, la regla inspecciona la unión de tensores de ambos conjuntos.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de parámetros para la regla TensorVariance


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| collection\$1names |  Lista de nombres de colección cuyos tensores inspecciona la regla. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas Valor predeterminado: none  | 
| tensor\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas  Valor predeterminado: none  | 
| max\$1threshold |  Umbral para el límite superior de la variación de tensor. **Opcional** Valores válidos: número flotante Valor predeterminado: none  | 
| min\$1threshold |  Umbral para el límite inferior de la variación de tensor. **Opcional** Valores válidos: número flotante Valor predeterminado: none  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.tensor_variance(),
        rule_parameters={
                "collection_names": "weights",
                "max_threshold": "10",
                "min_threshold": "0.00001",
        },
        collections_to_save=[ 
            CollectionConfig(
                name="weights", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## UnchangedTensor
<a name="unchanged-tensor"></a>

Esta regla detecta si un tensor ya no cambia en los pasos. 

Esta regla ejecuta el método [numpy.allclose](https://docs.scipy.org/doc/numpy/reference/generated/numpy.allclose.html) para comprobar si el tensor no está cambiando.

Esta regla se puede aplicar a uno de los marcos de aprendizaje profundo admitidos (TensorFlow, MXNet y PyTorch) o al algoritmo XGBoost. Debe especificar el parámetro `collection_names` o `tensor_regex`. Si se especifican ambos parámetros, la regla inspecciona la unión de tensores de ambos conjuntos.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de parámetros para la regla UnchangedTensor


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| collection\$1names |  Lista de nombres de colección cuyos tensores inspecciona la regla. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas Valor predeterminado: none  | 
| tensor\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas  Valor predeterminado: none  | 
| num\$1steps |  El número de pasos en los que comprueba la regla para determinar si el tensor ha cambiado.  Esto comprueba los últimos `num_steps` que están disponibles. No tienen que ser consecutivos. Si `num_steps` es 2, en el paso s no verifica necesariamente s-1 y s. Si s-1 no está disponible, comprueba el último paso disponible junto con s. En ese caso, comprueba el último paso disponible con el paso actual. **Opcional** Valores válidos: número entero Valor predeterminado: `3`  | 
| rtol |  El parámetro de tolerancia relativa que se va a transferir al método `[numpy.allclose](https://docs.scipy.org/doc/numpy/reference/generated/numpy.allclose.html)`.  **Opcional** Valores válidos: número flotante Valor predeterminado: `1e-05`  | 
| atol |  El parámetro de tolerancia absoluta que se va a transferir al método `[numpy.allclose](https://docs.scipy.org/doc/numpy/reference/generated/numpy.allclose.html)`. **Opcional** Valores válidos: número flotante Valor predeterminado: `1e-08`  | 
| equal\$1nan |  Si comparar los NaNs como iguales. Si es `True`, los NaNs en la matriz de entrada a se consideran iguales a los NaNs en la matriz de entrada b en la matriz de salida. Este parámetro se transfiere al método `[numpy.allclose](https://docs.scipy.org/doc/numpy/reference/generated/numpy.allclose.html)`. **Opcional** Valores válidos: booleano Valor predeterminado: `False`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.unchanged_tensor(),
        rule_parameters={
                "collection_names": "losses",
                "tensor_regex": "",
                "num_steps": "3",
                "rtol": "1e-05",
                "atol": "1e-08",
                "equal_nan": "False"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## CheckInputImages
<a name="checkinput-mages"></a>

Esta regla comprueba si las imágenes de entrada se han normalizado correctamente. Específicamente, detecta si la media de los datos de muestra difiere de cero en más de un valor umbral. Muchos modelos de visión artificial requieren que los datos de entrada tengan una media cero y varianza unitaria.

Esta regla es aplicable a aplicaciones de aprendizaje profundo.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de parámetros para la regla CheckInputImages


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| threshold\$1mean |  Un umbral que define en qué medida la media de los datos de entrada puede diferir de 0. **Opcional** Valores válidos: número flotante Valor predeterminado: `0.2`  | 
| threshold\$1samples |  El número de imágenes que se deben muestrear antes de que se pueda lanzar un error. Si el valor es demasiado bajo, la estimación de la media del conjunto de datos será inexacta. **Opcional** Valores válidos: número entero Valor predeterminado: `500`  | 
| regex |  El nombre del tensor de datos de entrada. **Opcional** Valores válidos: string Valor predeterminado: `".*hybridsequential0_input_0"` (el nombre del tensor de entrada para los modelos de Apache MXNet usando HybridSequential)  | 
| channel |  La posición del canal de color en la matriz de forma del tensor de entrada.  **Opcional** Valores válidos: número entero Valor predeterminado: `1` (por ejemplo, MXNet espera datos de entrada en forma de (batch\$1size, channel, height, width))  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.check_input_images(),
        rule_parameters={
                "threshold_mean": "0.2",
                "threshold_samples": "500",
                "regex": ".*hybridsequential0_input_0",
                "channel": "1"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_inputs_collection", 
                parameters={
                    "include_regex": ".*hybridsequential0_input_0",
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## NLPSequenceRatio
<a name="nlp-sequence-ratio"></a>

Esta regla calcula la proporción de tokens específicos dado el resto de la secuencia de entrada que es útil para optimizar el rendimiento. Por ejemplo, puede calcular el porcentaje de relleno de tokens de fin de oración (EOS) en la secuencia de entrada. Si el número de tokens EOS es demasiado alto, se debe realizar una estrategia de asignación de buckets alternativa. También puede calcular el porcentaje de tokens desconocidos en su secuencia de entrada. Si el número de palabras desconocidas es demasiado alto, podría utilizarse un vocabulario alternativo.

Esta regla es aplicable a aplicaciones de aprendizaje profundo.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de parámetros para la regla NLPSequenceRatio


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| tensor\$1regex |  Una lista de patrones de expresiones regulares que se utiliza para restringir esta comparación a tensores de valores escalares específicos. La regla inspecciona solo los tensores que coinciden con los patrones de expresiones regulares especificados en la lista. Si no se aprueba ningún patrón, la regla compara todos los tensores recopilados en las pruebas de forma predeterminada. Solo pueden coincidir los tensores de valor escalar. **Opcional** Valores válidos: lista de cadenas o una cadena separada por comas  Valor predeterminado: `".*embedding0_input_0"` (suponiendo una integración como capa inicial de la red)  | 
| token\$1values |  Una cadena de una lista de los valores numéricos de los tokens. Por ejemplo, "3, 0". **Opcional** Valores válidos: string de valores numéricos separados por comas Valor predeterminado: `0`  | 
| token\$1thresholds\$1percent |  Una cadena de una lista de umbrales (en porcentajes) que corresponden a cada uno de los `token_values`. Por ejemplo, "50.0, 50.0". **Opcional** Valores válidos: string de números flotantes separada por comas Valor predeterminado: `"50"`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.nlp_sequence_ratio(),
        rule_parameters={
                "tensor_regex": ".*embedding0_input_0",
                "token_values": "0",
                "token_thresholds_percent": "50"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_inputs_collection", 
                parameters={
                    "include_regex": ".*embedding0_input_0"
                } 
            )
        ]
    )
]
```

## Confusion
<a name="confusion"></a>

Esta regla evalúa lo buena que es una matriz de confusión para un problema de clasificación.

Crea una matriz de tamaño `category_no*category_no` y la rellena con datos procedentes de pares (`labels`, `predictions`). Para cada par (`labels`, `predictions`), el recuento `confusion[labels][predictions]` se incrementa en 1. Cuando la matriz está completamente llena, la proporción de los valores de los datos en diagonal y fuera de diagonal se evalúa de la siguiente manera:
+ Para elementos en la diagonal: `confusion[i][i]/sum_j(confusion[j][j])>=min_diag`
+ Para elementos fuera de la diagonal: `confusion[j][i])/sum_j(confusion[j][i])<=max_off_diag`

Esta regla se puede aplicar al algoritmo XGBoost.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de parámetros para la regla Confusion


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| category\$1no |  El número de categorías. **Opcional** Valores válidos: número entero ≥2 Valor predeterminado: `"None"`  | 
| labels |  La colección de tensores `labels` o un vector unidimensional de etiquetas true.  **Opcional** Valores válidos: string Valor predeterminado: `"labels"`  | 
| predictions |  La colección de tensores `predictions` o un vector unidimensional de etiquetas estimadas.  **Opcional** Valores válidos: string Valor predeterminado: `"predictions"`  | 
| labels\$1collection |  La regla inspecciona los tensores de esta colección para `labels`. **Opcional** Valores válidos: string Valor predeterminado: `"labels"`  | 
| predictions\$1collection |  La regla inspecciona los tensores de esta colección para `predictions`. **Opcional** Valores válidos: string Valor predeterminado: `"predictions"`  | 
| min\$1diag |  El umbral mínimo para la relación de datos en la diagonal. **Opcional** Valores válidos: `0`≤número flotante≤`1` Valor predeterminado: `0.9`  | 
| max\$1off\$1diag |  El umbral máximo para la relación de datos fuera de la diagonal. **Opcional** Valores válidos: `0`≤número flotante≤`1` Valor predeterminado: `0.1`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.confusion(),
        rule_parameters={
                "category_no": "10",
                "labels": "labels",
                "predictions": "predictions",
                "labels_collection": "labels",
                "predictions_collection": "predictions",
                "min_diag": "0.9",
                "max_off_diag": "0.1"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="labels",
                parameters={
                    "save_interval": "500"
                } 
            ),
            CollectionConfig(
                name="predictions",
                parameters={
                    "include_regex": "500"
                } 
            )
        ]
    )
]
```

**nota**  
Esta regla infiere los valores predeterminados de los parámetros opcionales si no se especifican sus valores.

## FeatureImportanceOverweight
<a name="feature_importance_overweight"></a>

Esta regla acumula las ponderaciones de los valores n de mayor importancia de las características por paso y se asegura de que no superen el umbral. Por ejemplo, puede establecer el umbral para que las tres características principales no retengan más del 80 por ciento de los pesos totales del modelo.

Esta regla es válida solo para el algoritmo XGBoost.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de los parámetros de la regla FeatureImportanceOverweight.


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| threshold |  Define el umbral de la proporción de la suma acumulada de las características `n` más grandes. El número `n` viene definido por el parámetro `nfeatures`. **Opcional** Valores válidos: número flotante Valor predeterminado: `0.8`  | 
| nfeatures |  El número de características más grandes. **Opcional** Valores válidos: número entero Valor predeterminado: `3`  | 
| tensor\$1regex |  La expresión regular (regex) del tensor nombra la regla que se va a analizar. **Opcional** Valores válidos: string Valor predeterminado: `".*feature_importance/weight"`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.feature_importance_overweight(),
        rule_parameters={
                "threshold": "0.8",
                "nfeatures": "3",
                "tensor_regex": ".*feature_importance/weight"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="feature_importance", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## TreeDepth
<a name="tree-depth"></a>

Esta regla mide la profundidad de los árboles en un modelo XGBoost. XGBoost rechaza las divisiones si no mejoran la pérdida. Esto regulariza el entrenamiento. Como resultado, es posible que el árbol no crezca con tanta profundidad como se define en parámetro `depth`.

Esta regla es válida solo para el algoritmo XGBoost.

Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte [Cómo configurar reglas integradas del depurador](use-debugger-built-in-rules.md).

Descripciones de parámetros para la regla TreeDepth


| Nombre del parámetro | Descripción | 
| --- | --- | 
| base\$1trial |  El nombre del trabajo de entrenamiento de prueba base. El depurador de Amazon SageMaker establece automáticamente este parámetro en el trabajo de entrenamiento actual.  **Obligatorio** Valores válidos: string  | 
| depth |  La profundidad del árbol. La profundidad del árbol se obtiene calculando el logaritmo base 2 del ID de nodo mayor. **Opcional** Valores válidos: número flotante Valor predeterminado: `4`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.tree_depth(),
        rule_parameters={
                "depth": "4"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="tree", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```