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
Amazon SageMaker Debugger Registry URLs pour les évaluateurs de règles personnalisés
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 utilise un essai de base créé par un SageMaker estimateur lorsqu'il lance une tâche de formation.
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 montre comment configurer une règle personnalisée avec le SDK Amazon SageMaker Python
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 de l'évaluateur de SageMaker règles open source sur. Amazon SageMaker Debugger Registry URLs pour les évaluateurs de règles personnalisés -
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) : Ceci spécifie l'implémentation de la classe Rule particulière dans votre script de règles personnalisé. SageMaker ne prend en charge qu'une seule règle à évaluer à la fois dans une tâche de règles. -
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.
Après avoir configuré l'custom_rule
objet, vous pouvez l'utiliser pour créer un SageMaker estimateur pour tous les travaux de formation. 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.