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
Puede usar las reglas integradas del Debugger, proporcionadas por Amazon SageMaker Debugger, para analizar las métricas y los tensores recopilados durante el entrenamiento de sus modelos. A continuación, se enumeran las reglas del depurador e incluye 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 invocar las reglas integradas mediante Amazon SageMaker Python SDK
El uso de reglas integradas no conlleva ningún coste adicional. Para obtener más información sobre la facturación, consulta la página de SageMaker precios de Amazon
nota
El número máximo de reglas integradas que se pueden vincularse a un trabajo de entrenamiento es de 20. SageMaker Debugger gestiona completamente las reglas integradas y analiza tu trabajo de entrenamiento de forma sincrónica.
importante
Para utilizar las nuevas funciones del Debugger, debe actualizar SageMaker Python SDK y la biblioteca SMDebug cliente. En su iPython núcleo, bloc de notas de Jupyter o JupyterLab entorno, ejecute el siguiente código para instalar las últimas versiones de las bibliotecas y reiniciar el núcleo.
import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)
Regla del depurador
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 formación para un trabajo de SageMaker XGboost formación |
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 (TensorFlowMXNet, y PyTorch) | |
Los marcos de aprendizaje profundo (TensorFlowMXNet, y PyTorch) y el XGBoost algoritmo | |
Aplicaciones de aprendizaje profundo | |
XGBoostalgoritmo |
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.
-
Para obtener instrucciones completas sobre el uso de las reglas integradas con las SageMaker API operaciones de bajo nivel, consulteConfigurar el depurador mediante SageMaker API.
CreateXgboostReport
La CreateXgboostReport regla recopila los tensores de salida de un trabajo de XGBoost entrenamiento 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 CreateXgboostReport regla 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 los parámetros de la regla CreateXgboostReport
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
rules=[ Rule.sagemaker( rule_configs.
create_xgboost_report
() ) ]
DeadRelu
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 R inactivo eLUs en una capa es mayor que el threshold_layer
valor de R inactivoeLUs, la regla vuelveTrue
.
Descripciones de los parámetros de la DeadRelu regla
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
tensor_regex |
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: |
threshold_inactivity |
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 Opcional Valores válidos: número flotante Valores predeterminados: |
threshold_layer |
Devuelve Devuelve Opcional Valores válidos: número flotante Valores predeterminados: |
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 las reglas integradas del Debugger.
nota
Esta regla no está disponible para el XGBoost algoritmo.
ExplodingTensor
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 los parámetros de la regla ExplodingTensor
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
collection_names |
Lista de nombres de colección cuyos tensores inspecciona la regla. Opcional Valores válidos: string Valor predeterminado: |
tensor_regex |
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: |
only_nan |
Opcional Valor predeterminado: |
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 las reglas integradas del Debugger.
nota
Esta regla no está disponible para el XGBoost algoritmo.
PoorWeightInitialization
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 los parámetros de la regla PoorWeightInitialization
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
activation_inputs_regex |
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: |
threshold |
Si la relación entre la varianza mínima y máxima de pesos por capa supera Opcional Valores válidos: número flotante Valor predeterminado: |
distribution_range |
Si la diferencia mínima entre los percentiles 5.º y 95.º de la distribución de gradiente es menor que la Opcional Valores válidos: número flotante Valor predeterminado: |
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: |
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: |
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 las reglas integradas del Debugger.
nota
Esta regla no está disponible para el XGBoost algoritmo.
SaturatedActivation
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 los parámetros de la regla SaturatedActivation
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
collection_names |
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_regex |
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: |
threshold_tanh_min |
Los umbrales mínimo y máximo que definen los extremos de la entrada para una función de activación tanh, definidos como: Opcional Valores válidos: número flotante Valores predeterminados: |
threshold_tanh_max |
Los umbrales mínimo y máximo que definen los extremos de la entrada para una función de activación tanh, definidos como: Opcional Valores válidos: número flotante Valores predeterminados: |
threshold_sigmoid_min |
Los umbrales mínimo y máximo que definen los extremos de la entrada para una función de activación sigmoide, definidos como: Opcional Valores válidos: número flotante Valores predeterminados: |
threshold_sigmoid_max |
Los umbrales mínimo y máximo que definen los extremos de la entrada para una función de activación sigmoide, definidos como: Opcional Valores válidos: número flotante Valores predeterminados: |
threshold_inactivity |
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: |
threshold_layer |
Devuelve Devuelve Opcional Valores válidos: número flotante Valores predeterminados: |
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 las reglas integradas del Debugger.
nota
Esta regla no está disponible para el XGBoost algoritmo.
VanishingGradient
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 los parámetros de la regla VanishingGradient
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
threshold |
Valor en el que se determina que el gradiente está desapareciendo. Opcional Valores válidos: número flotante Valor predeterminado: |
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 las reglas integradas del Debugger.
nota
Esta regla no está disponible para el XGBoost algoritmo.
WeightUpdateRatio
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 los parámetros de la regla WeightUpdateRatio
Nombre del parámetro, | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
num_steps |
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 Opcional Valores válidos: número entero Valor predeterminado: |
large_threshold |
El valor máximo que puede tomar la proporción de actualizaciones a ponderaciones antes de la regla devuelve Opcional Valores válidos: número flotante Valor predeterminado: |
small_threshold |
El valor mínimo que puede tomar la proporción de actualizaciones a ponderaciones, por debajo del cual la regla devuelve Opcional Valores válidos: número flotante Valor predeterminado: |
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: |
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 las reglas integradas del Debugger.
nota
Esta regla no está disponible para el XGBoost algoritmo.
AllZero
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 compatibles (TensorFlowMXNet, y PyTorch) o al XGBoost algoritmo. 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 las reglas integradas del Debugger.
Descripciones de los parámetros de la AllZero regla
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
collection_names |
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: |
tensor_regex |
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: |
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
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 compatibles (TensorFlowMXNet, y PyTorch) o al XGBoost algoritmo.
Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte Cómo configurar las reglas integradas del Debugger.
Descripciones de los parámetros de la ClassImbalance regla
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
threshold_imbalance |
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: |
threshold_misprediction |
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: |
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 Opcional Valores válidos: número entero Valor predeterminado: |
argmax |
Si es Condicional Valores válidos: booleano Valor predeterminado: |
labels_regex |
El nombre del tensor que contiene las etiquetas. Opcional Valores válidos: string Valor predeterminado: |
predictions_regex |
El nombre del tensor que contiene las predicciones. Opcional Valores válidos: string Valor predeterminado: |
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
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 compatibles (TensorFlowMXNet, y PyTorch) o al XGBoost algoritmo. 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 las reglas integradas del Debugger.
Descripciones de los parámetros de la LossNotDecreasing regla
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
collection_names |
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: |
tensor_regex |
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: |
use_losses_collection |
Si se establece en Opcional Valores válidos: booleano Valor predeterminado: |
num_steps |
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 Opcional Valores válidos: número entero Valor predeterminado: |
diff_percent |
La diferencia porcentual mínima que debe disminuir la pérdida entre Opcional Valores válidos: Valor predeterminado: |
increase_threshold_percent |
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: Valor predeterminado: |
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 Opcional Valores válidos: string ( Valor predeterminado: |
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
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 compatibles (TensorFlowMXNet, y PyTorch) o al XGBoost algoritmo.
Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte Cómo configurar las reglas integradas del Debugger.
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_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
tensor_regex |
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_step |
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: |
patience |
El número de pasos para los que se permite que Opcional Valores válidos: número entero Valor predeterminado: |
ratio_threshold |
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 Opcional Valores válidos: número flotante Valor predeterminado: |
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
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 compatibles (TensorFlowMXNet, y PyTorch) o al XGBoost algoritmo.
Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte Cómo configurar las reglas integradas del Debugger.
nota
El sobreentrenamiento puede evitarse mediante una detención temprana. Para obtener información sobre la parada temprana, consulte Detener trabajos de entrenamiento pronto. Para ver un ejemplo que muestra cómo utilizar el entrenamiento puntual con Debugger, consulte Habilitar el entrenamiento puntual con Amazon SageMaker Debugger
Descripciones de parámetros para la regla Overtraining
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
patience_train |
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: |
patience_validation |
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 entero Valor predeterminado: |
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: |
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
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 compatibles (TensorFlowMXNet, y PyTorch) o al XGBoost algoritmo.
Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte Cómo configurar las reglas integradas del Debugger.
Descripciones de los parámetros de la SimilarAcrossRuns regla
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
other_trials |
El nombre de un trabajo de entrenamiento completado cuyos tensores desea comparar con los tensores obtenidos del actual Obligatorio Valores válidos: string |
collection_names |
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_regex |
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
StalledTrainingRule detecta si no se ha realizado ningún progreso en el trabajo de formación y detiene el trabajo de formación 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 StalledTrainingRule regla
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación 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: |
stop_training_on_fire |
Si se establece en Opcional Valores válidos: booleano Valor predeterminado: |
training_job_name_prefix |
El prefijo del nombre de trabajo de entrenamiento base. Si 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
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 compatibles (TensorFlowMXNet, y PyTorch) o al XGBoost algoritmo. 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 las reglas integradas del Debugger.
Descripciones de los parámetros de la TensorVariance regla
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
collection_names |
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_regex |
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_threshold |
Umbral para el límite superior de la variación de tensor. Opcional Valores válidos: número flotante Valor predeterminado: none |
min_threshold |
Umbral para el límite inferior de la variación de tensor. Opcional Valores válidos: número flotante Valor predeterminado: ninguno |
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
Esta regla detecta si un tensor ya no cambia en los pasos.
Esta regla ejecuta el método numpy.allclose
Esta regla se puede aplicar a uno de los marcos de aprendizaje profundo compatibles (TensorFlowMXNet, y PyTorch) o al XGBoost algoritmo. 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 las reglas integradas del Debugger.
Descripciones de los parámetros de la UnchangedTensor regla
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
collection_names |
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_regex |
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_steps |
El número de pasos en los que comprueba la regla para determinar si el tensor ha cambiado. Esto comprueba los últimos Opcional Valores válidos: número entero Valor predeterminado: |
rtol |
El parámetro de tolerancia relativa que se va a transferir al método Opcional Valores válidos: número flotante Valor predeterminado: |
atol |
El parámetro de tolerancia absoluta que se va a transferir al método Opcional Valores válidos: número flotante Valor predeterminado: |
equal_nan |
Si se debe comparar NaNs como igual. Si Opcional Valores válidos: booleano Valor predeterminado: |
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
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 las reglas integradas del Debugger.
Descripciones de los parámetros de la regla CheckInputImages
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
threshold_mean |
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: |
threshold_samples |
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: |
regex |
El nombre del tensor de datos de entrada. Opcional Valores válidos: string Valor predeterminado: |
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: |
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
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 fichas de padding end-of-sentence (EOS) en la secuencia de entrada. Si el número de EOS fichas es demasiado alto, debes utilizar una estrategia de agrupamiento 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 las reglas integradas del Debugger.
Descripciones de los parámetros de la regla NLPSequenceRatio
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
tensor_regex |
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: |
token_values |
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: |
token_thresholds_percent |
Una cadena de una lista de umbrales (en porcentajes) que corresponden a cada uno de los Opcional Valores válidos: string de números flotantes separada por comas Valor predeterminado: |
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
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 XGBoost algoritmo.
Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte Cómo configurar las reglas integradas del Debugger.
Descripciones de parámetros para la regla Confusion
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
category_no |
El número de categorías. Opcional Valores válidos: número entero ≥2 Valor predeterminado: |
labels |
La colección de tensores Opcional Valores válidos: string Valor predeterminado: |
predictions |
La colección de tensores Opcional Valores válidos: string Valor predeterminado: |
labels_collection |
La regla inspecciona los tensores de esta colección para Opcional Valores válidos: string Valor predeterminado: |
predictions_collection |
La regla inspecciona los tensores de esta colección para Opcional Valores válidos: string Valor predeterminado: |
min_diag |
El umbral mínimo para la relación de datos en la diagonal. Opcional Valores válidos: Valor predeterminado: |
max_off_diag |
El umbral máximo para la relación de datos fuera de la diagonal. Opcional Valores válidos: Valor predeterminado: |
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
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 solo es válida para el XGBoost algoritmo.
Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte Cómo configurar las reglas integradas del Debugger.
Descripciones de los parámetros de la FeatureImportanceOverweight regla
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación actual. Obligatorio Valores válidos: string |
threshold |
Define el umbral de la proporción de la suma acumulada de las características Opcional Valores válidos: número flotante Valor predeterminado: |
nfeatures |
El número de características más grandes. Opcional Valores válidos: número entero Valor predeterminado: |
tensor_regex |
La expresión regular (regex) del tensor nombra la regla que se va a analizar. Opcional Valores válidos: string Valor predeterminado: |
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
Esta regla mide la profundidad de los árboles de un XGBoost modelo. XGBoostrechaza las divisiones si no mejoran las pérdidas. 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 solo es válida para el XGBoost algoritmo.
Para ver un ejemplo de cómo configurar e implementar una regla integrada, consulte Cómo configurar las reglas integradas del Debugger.
Descripciones de los parámetros de la TreeDepth regla
Nombre del parámetro | Descripción |
---|---|
base_trial |
El nombre del trabajo de entrenamiento de prueba base. Amazon SageMaker Debugger establece automáticamente este parámetro en el trabajo de formación 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: |
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
" } ) ] ) ]