Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Créer des règles personnalisées Debugger pour l'analyse des tâches d'entraînement
Vous pouvez créer des règles personnalisées pour contrôle votre tâche d'entraînement à l'aide des API de règle Debugger et de la bibliothèque Python smdebug
Rubriques
Prérequis pour créer des règles personnalisées Debugger
Pour créer des règles personnalisées Debugger, vous avez besoin des prérequis suivants.
Votre propre script python de règle personnalisée
URL de registre Amazon SageMaker Debugger pour les évaluateurs de règles personnalisées
Utiliser la bibliothèque client smdebug
de Debugger pour créer un script Python personnalisé
L'API de règle smdebug
fournit une interface pour configurer vos propres règles personnalisées. Le script python suivant montre comment vous pouvez créer une règle personnalisée, CustomGradientRule
. Cette règle personnalisée de didacticiel contrôle si les gradients deviennent trop grands. Le seuil par défaut est 10. La règle personnalisée prend un essai de base créé par un estimateur SageMaker lorsqu'il lance une tâche d'entraînement.
from smdebug.rules.rule import Rule class CustomGradientRule(Rule): def __init__(self, base_trial, threshold=10.0): super().__init__(base_trial) self.threshold = float(threshold) def invoke_at_step(self, step): for tname in self.base_trial.tensor_names(collection="gradients"): t = self.base_trial.tensor(tname) abs_mean = t.reduction_value(step, "mean", abs=True) if abs_mean > self.threshold: return True return False
Vous pouvez ajouter autant de classes de règles personnalisées que vous le souhaitez dans le même script python et les déployer dans n'importe quel essai de tâche d'entraînement en créant des objets de règle personnalisée dans la section suivante.
Utiliser les API Debugger pour exécuter vos propres règles personnalisées
L'exemple de code suivant décrit comment configurer une règle personnalisée avec le kit SDK Python Amazon SageMaker
from sagemaker.debugger import Rule, CollectionConfig custom_rule = Rule.custom( name='MyCustomRule', image_uri='759209512951.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rule-evaluator:latest', instance_type='ml.t3.medium', source='path/to/my_custom_rule.py', rule_to_invoke='CustomGradientRule', collections_to_save=[CollectionConfig("gradients")], rule_parameters={"threshold": "20.0"} )
La liste suivante explique les arguments de l'API Rule.custom
Debugger.
-
name
(str) : spécifiez un nom de règle personnalisé à votre guise. -
image_uri
(str) : il s'agit de l'image du conteneur dont la logique est de comprendre votre règle personnalisée. Celle-ci approvisionne et évalue les collections de tenseurs spécifiées que vous enregistrez dans la tâche d'entraînement. Vous pouvez trouver la liste des images d'évaluateur de règles SageMaker open source dans URL de registre Amazon SageMaker Debugger pour les évaluateurs de règles personnalisées. -
instance_type
(str) : vous devez spécifier une instance pour créer un conteneur Docker de règles afin d'activer l'instance en parallèle avec un conteneur d'entraînement. -
source
(str) : il s'agit du chemin local ou de l'URI Amazon S3 vers votre script de règle personnalisée. -
rule_to_invoke
(str) : spécifie l'implémentation de la classe de règle particulière dans votre script de règle personnalisée. SageMaker ne prend en charge qu'une seule règle à évaluer à la fois dans une tâche de règle. -
collections_to_save
(str) : spécifie les collections de tenseurs que vous allez enregistrer pour l'exécution de la règle. -
rule_parameters
(dictionnaire) : accepte les entrées de paramètres dans un format de dictionnaire. Vous pouvez ajuster les paramètres que vous avez configurés dans le script de règle personnalisée.
Une fois que vous avez configuré l'objet custom_rule
, vous pouvez l'utiliser pour créer un estimateur SageMaker pour n'importe quelle tâche d'entraînement. Spécifiez le point entry_point
à votre script d'entraînement. Vous n'avez pas besoin de modifier votre script d'entraînement.
from sagemaker.tensorflow import TensorFlow estimator = TensorFlow( role=sagemaker.get_execution_role(), base_job_name='smdebug-custom-rule-demo-tf-keras', entry_point='path/to/your_training_script.py' train_instance_type='ml.p2.xlarge' ... # debugger-specific arguments below rules = [custom_rule] ) estimator.fit()
Pour plus de variantes et des exemples avancés d'utilisation des règles personnalisées Debugger, consultez les exemples de blocs-notes suivants.
Contrôler votre tâche d'entraînement avec les règles personnalisées Amazon SageMaker Debugger
(langue française non garantie) Réduction de modèle itératif PyTorch de ResNet et AlexNet
(langue française non garantie) Déclencher Amazon CloudWatch Events à l'aide de règles Debugger pour effectuer une action basée sur l'état d'entraînement avec TensorFlow
(langue française non garantie)