Suppression d'un modèle Amazon Rekognition Custom Labels - Rekognition

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.

Suppression d'un modèle Amazon Rekognition Custom Labels

Vous pouvez supprimer un modèle à l'aide de la console Amazon Rekognition Custom Labels ou de l'DeleteProjectVersionAPI. Vous ne pouvez pas supprimer un modèle s'il est en cours d'exécution ou s'il est en cours d'entraînement. Pour arrêter un modèle en cours d'exécution, utilisez l'StopProjectVersionAPI. Pour plus d'informations, veuillez consulter Arrêt d’un modèle Étiquettes personnalisées Amazon Rekognition (kit SDK). Si un modèle est en cours d'entraînement, attendez qu'il soit terminé avant de le supprimer.

Un modèle supprimé ne peut pas être rétabli.

Suppression d'un modèle Amazon Rekognition Custom Labels (console)

La procédure suivante indique comment supprimer un modèle de la page de détails d'un projet. Vous pouvez également supprimer un modèle de la page détaillée d'un modèle.

Pour supprimer un modèle (console)
  1. Ouvrez la console Amazon Rekognition à l'adresse https://console.aws.amazon.com/rekognition/.

  2. Choisissez Utiliser des étiquettes personnalisées.

  3. Sélectionnez Get started (Démarrer).

  4. Dans le panneau de navigation de gauche, choisissez Projects (Projets).

  5. Choisissez le projet qui contient le modèle que vous voulez supprimer. La page de Détails du projet s'ouvre.

  6. Dans la section Modèles (Modèles), sélectionnez les modèles que vous voulez supprimer.

    Note

    Si le modèle ne peut pas être sélectionné, cela signifie qu'il est en cours d'exécution ou en cours d'entraînement et ne peut pas être supprimé. Vérifiez le champ Status et réessayez après avoir arrêté le modèle en cours d'exécution, ou attendez la fin de l'entraînement.

  7. Choisissez Supprimer le modèle et la boîte de dialogue Supprimer le modèle s'affiche.

  8. Saisissez supprimer pour confirmer la suppression.

  9. Choisissez Delete (Supprimer) pour supprimer le modèle. La suppression du modèle peut prendre un certain temps.

    Note

    Si vous fermez la boîte de dialogue pendant la suppression du modèle, les modèles sont toujours supprimés.

Suppression d'un modèle Amazon Rekognition Custom Labels (SDK)

Pour supprimer un modèle d'étiquettes personnalisées Amazon Rekognition, appelez DeleteProjectVersionet fournissez l'Amazon Resource Name (ARN) du modèle que vous souhaitez supprimer. Vous pouvez obtenir l'ARN du modèle dans la section Utiliser votre modèle de la page de détails du modèle dans la console Amazon Rekognition Custom Labels. Vous pouvez également appeler DescribeProjectVersionset fournir les informations suivantes.

  • L'ARN du projet (ProjectArn) auquel le modèle est associé.

  • Le nom de version (VersionNames) du modèle.

L'ARN du modèle est leProjectVersionArn champ de l'ProjectVersionDescriptionobjet, à partir de laDescribeProjectVersions réponse.

Vous ne pouvez supprimer un modèle en cours d'exécution ou en cours d'entraînement. Pour déterminer si le modèle est en cours d'exécution ou s'entraîne, appelez DescribeProjectVersionset vérifiez leStatus champ de l'ProjectVersionDescriptionobjet du modèle. Pour arrêter un modèle en cours d'exécution, utilisez l'StopProjectVersionAPI. Pour plus d'informations, veuillez consulter Arrêt d’un modèle Étiquettes personnalisées Amazon Rekognition (kit SDK). Vous devez attendre la fin de l'entraînement d'un modèle avant de pouvoir le supprimer.

Pour supprimer un modèle (SDK)
  1. Si vous ne l'avez pas déjà fait, installez et configurez lesAWS SDKAWS CLI et. Pour plus d'informations, veuillez consulter Étape 4 : Configuration des AWS SDK AWS CLI et.

  2. Utilisez le code suivant pour supprimer un modèle.

    AWS CLI

    Remplacez la valeurproject-version-arn de par le nom du projet que vous souhaitez supprimer.

    aws rekognition delete-project-version --project-version-arn model_arn \ --profile custom-labels-access
    Python

    Fournissez les paramètres de ligne de commande suivants

    • project_arn— l'ARN du projet qui contient le modèle que vous souhaitez supprimer.

    • model_arn— l'ARN de la version du modèle que vous souhaitez supprimer.

    # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 """ Purpose Shows how to delete an existing Amazon Rekognition Custom Labels model. """ import argparse import logging import time import boto3 from botocore.exceptions import ClientError logger = logging.getLogger(__name__) def find_forward_slash(input_string, n): """ Returns the location of '/' after n number of occurences. :param input_string: The string you want to search : n: the occurence that you want to find. """ position = input_string.find('/') while position >= 0 and n > 1: position = input_string.find('/', position + 1) n -= 1 return position def delete_model(rek_client, project_arn, model_arn): """ Deletes an Amazon Rekognition Custom Labels model. :param rek_client: The Amazon Rekognition Custom Labels Boto3 client. :param model_arn: The ARN of the model version that you want to delete. """ try: # Delete the model logger.info("Deleting dataset: {%s}", model_arn) rek_client.delete_project_version(ProjectVersionArn=model_arn) # Get the model version name start = find_forward_slash(model_arn, 3) + 1 end = find_forward_slash(model_arn, 4) version_name = model_arn[start:end] deleted = False # model might not be deleted yet, so wait deletion finishes. while deleted is False: describe_response = rek_client.describe_project_versions(ProjectArn=project_arn, VersionNames=[version_name]) if len(describe_response['ProjectVersionDescriptions']) == 0: deleted = True else: logger.info("Waiting for model deletion %s", model_arn) time.sleep(5) logger.info("model deleted: %s", model_arn) return True except ClientError as err: logger.exception("Couldn't delete model - %s: %s", model_arn, err.response['Error']['Message']) raise def add_arguments(parser): """ Adds command line arguments to the parser. :param parser: The command line parser. """ parser.add_argument( "project_arn", help="The ARN of the project that contains the model that you want to delete." ) parser.add_argument( "model_arn", help="The ARN of the model version that you want to delete." ) def confirm_model_deletion(model_arn): """ Confirms deletion of the model. Returns True if delete entered. :param model_arn: The ARN of the model that you want to delete. """ print(f"Are you sure you wany to delete model {model_arn} ?\n", model_arn) start = input("Enter delete to delete your model: ") if start == "delete": return True else: return False def main(): logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") try: # Get command line arguments. parser = argparse.ArgumentParser(usage=argparse.SUPPRESS) add_arguments(parser) args = parser.parse_args() if confirm_model_deletion(args.model_arn) is True: print(f"Deleting model: {args.model_arn}") # Delete the model. session = boto3.Session(profile_name='custom-labels-access') rekognition_client = session.client("rekognition") delete_model(rekognition_client, args.project_arn, args.model_arn) print(f"Finished deleting model: {args.model_arn}") else: print(f"Not deleting model {args.model_arn}") except ClientError as err: print(f"Problem deleting model: {err}") if __name__ == "__main__": main()
    Java V2
    • project_arn— l'ARN du projet qui contient le modèle que vous souhaitez supprimer.

    • model_arn— l'ARN de la version du modèle que vous souhaitez supprimer.

    //Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-custom-labels-developer-guide/blob/master/LICENSE-SAMPLECODE.) import java.net.URI; import java.util.logging.Level; import java.util.logging.Logger; import software.amazon.awssdk.services.rekognition.RekognitionClient; import software.amazon.awssdk.services.rekognition.model.DeleteProjectVersionRequest; import software.amazon.awssdk.services.rekognition.model.DeleteProjectVersionResponse; import software.amazon.awssdk.services.rekognition.model.DescribeProjectVersionsRequest; import software.amazon.awssdk.services.rekognition.model.DescribeProjectVersionsResponse; import software.amazon.awssdk.services.rekognition.model.RekognitionException; public class DeleteModel { public static final Logger logger = Logger.getLogger(DeleteModel.class.getName()); public static int findForwardSlash(String modelArn, int n) { int start = modelArn.indexOf('/'); while (start >= 0 && n > 1) { start = modelArn.indexOf('/', start + 1); n -= 1; } return start; } public static void deleteMyModel(RekognitionClient rekClient, String projectArn, String modelArn) throws InterruptedException { try { logger.log(Level.INFO, "Deleting model: {0}", projectArn); // Delete the model DeleteProjectVersionRequest deleteProjectVersionRequest = DeleteProjectVersionRequest.builder() .projectVersionArn(modelArn).build(); DeleteProjectVersionResponse response = rekClient.deleteProjectVersion(deleteProjectVersionRequest); logger.log(Level.INFO, "Status: {0}", response.status()); // Get the model version int start = findForwardSlash(modelArn, 3) + 1; int end = findForwardSlash(modelArn, 4); String versionName = modelArn.substring(start, end); Boolean deleted = false; DescribeProjectVersionsRequest describeProjectVersionsRequest = DescribeProjectVersionsRequest.builder() .projectArn(projectArn).versionNames(versionName).build(); // Wait until model is deleted. do { DescribeProjectVersionsResponse describeProjectVersionsResponse = rekClient .describeProjectVersions(describeProjectVersionsRequest); if (describeProjectVersionsResponse.projectVersionDescriptions().size()==0) { logger.log(Level.INFO, "Waiting for model deletion: {0}", modelArn); Thread.sleep(5000); } else { deleted = true; logger.log(Level.INFO, "Model deleted: {0}", modelArn); } } while (Boolean.FALSE.equals(deleted)); logger.log(Level.INFO, "Model deleted: {0}", modelArn); } catch ( RekognitionException e) { logger.log(Level.SEVERE, "Client error occurred: {0}", e.getMessage()); throw e; } } public static void main(String args[]) { final String USAGE = "\n" + "Usage: " + "<project_arn> <model_arn>\n\n" + "Where:\n" + " project_arn - The ARN of the project that contains the model that you want to delete.\n\n" + " model_version - The ARN of the model that you want to delete.\n\n"; if (args.length != 2) { System.out.println(USAGE); System.exit(1); } String projectArn = args[0]; String modelVersion = args[1]; try { RekognitionClient rekClient = RekognitionClient.builder().build(); // Delete the model deleteMyModel(rekClient, projectArn, modelVersion); System.out.println(String.format("model deleted: %s", modelVersion)); rekClient.close(); } catch (RekognitionException rekError) { logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage()); System.exit(1); } catch (InterruptedException intError) { logger.log(Level.SEVERE, "Exception while sleeping: {0}", intError.getMessage()); System.exit(1); } } }