Nettoyer les ressources Amazon SageMaker Experiment - Amazon SageMaker

Nettoyer les ressources Amazon SageMaker Experiment

Afin d'éviter des frais inutiles, supprimez les ressources Amazon SageMaker Experiment dont vous n'avez plus besoin. Vous ne pouvez pas supprimer les ressources Experiment via la console de gestion SageMaker ou l'interface utilisateur d'Amazon SageMaker Studio. Cette rubrique vous montre comment nettoyer ces ressources à l'aide de Boto3 et du kit SDK Experiments. Pour de plus amples informations à propos du kit SDK Experiments, veuillez consulter sagemaker-experiences.

Pour supprimer l'expérience, vous devez supprimer tous les essais de l'expérience. Pour supprimer un essai, vous devez supprimer tous les composants d'évaluation de l'essai. Pour supprimer un composant d'essai, vous devez supprimer le composant de tous les essais.

Note

Les composants d'essai peuvent exister indépendamment des essais et des expériences. Vous n'avez pas à les supprimer. Si vous voulez les réutiliser, commentez tc.delete() dans le code.

Nettoyage à l'aide du kit SDK Experiments

Pour nettoyer à l'aide du kit SDK Experiments

import sys !{sys.executable} -m pip install sagemaker-experiments
import time from smexperiments.experiment import Experiment from smexperiments.trial import Trial from smexperiments.trial_component import TrialComponent

Définir cleanup_sme_sdk

def cleanup_sme_sdk(experiment): for trial_summary in experiment.list_trials(): trial = Trial.load(trial_name=trial_summary.trial_name) for trial_component_summary in trial.list_trial_components(): tc = TrialComponent.load( trial_component_name=trial_component_summary.trial_component_name) trial.remove_trial_component(tc) try: # comment out to keep trial components tc.delete() except: # tc is associated with another trial continue # to prevent throttling time.sleep(.5) trial.delete() experiment_name = experiment.experiment_name experiment.delete() print(f"\nExperiment {experiment_name} deleted")

Appeler cleanup_sme_sdk

experiment_to_cleanup = Experiment.load( # Use experiment name not display name experiment_name="experiment-name") cleanup_sme_sdk(experiment_to_cleanup)

Nettoyer à l'aide du kit SDK Python (Boto3)

Pour nettoyer avec Boto 3

import boto3 sm = boto3.Session().client('sagemaker')

Définir cleanup_boto3

def cleanup_boto3(experiment_name): trials = sm.list_trials(ExperimentName=experiment_name)['TrialSummaries'] print('TrialNames:') for trial in trials: trial_name = trial['TrialName'] print(f"\n{trial_name}") components_in_trial = sm.list_trial_components(TrialName=trial_name) print('\tTrialComponentNames:') for component in components_in_trial['TrialComponentSummaries']: component_name = component['TrialComponentName'] print(f"\t{component_name}") sm.disassociate_trial_component(TrialComponentName=component_name, TrialName=trial_name) try: # comment out to keep trial components sm.delete_trial_component(TrialComponentName=component_name) except: # component is associated with another trial continue # to prevent throttling time.sleep(.5) sm.delete_trial(TrialName=trial_name) sm.delete_experiment(ExperimentName=experiment_name) print(f"\nExperiment {experiment_name} deleted")

Appeler cleanup_boto3

# Use experiment name not display name experiment_name = "experiment-name" cleanup_boto3(experiment_name)