

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 Étiquettes personnalisées Amazon Rekognition
<a name="tm-delete-model"></a>

Vous pouvez supprimer un modèle à l'aide de la console Amazon Rekognition Custom Labels ou à l'aide de l'API. [DeleteProjectVersion](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteProjectVersion) Vous ne pouvez pas supprimer un modèle s’il fonctionne ou s’il est en cours d’entraînement. Pour arrêter un modèle en cours d'exécution, utilisez l'[StopProjectVersion](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StopProjectVersion)API. Pour de plus amples informations, veuillez consulter [Arrêt d’un modèle Étiquettes personnalisées Amazon Rekognition (kit SDK)](rm-stop.md#rm-stop-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.

**Topics**
+ [Suppression d’un modèle Étiquettes personnalisées Amazon Rekognition (console)](#tm-delete-model-console)
+ [Suppression d’un modèle Étiquettes personnalisées Amazon Rekognition (kit SDK)](#tm-delete-model-sdk)

## Suppression d’un modèle Étiquettes personnalisées Amazon Rekognition (console)
<a name="tm-delete-model-console"></a>

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 de détails d’un modèle. 

**Pour supprimer un modèle (console)**

1. Ouvrez la console Amazon Rekognition à l'adresse. [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)

1. Choisissez **Utiliser Custom Labels**.

1. Choisissez **Démarrer**. 

1. Dans le volet de navigation de gauche, choisissez **Projets**.

1. Choisissez le projet qui contient le modèle que vous souhaitez supprimer. La page de détails du projet s’ouvre.

1. Dans la section **Modèles**, sélectionnez les modèles que vous voulez supprimer.
**Note**  
Si le modèle ne peut pas être sélectionné, il est en cours d’exécution ou d’entraînement et ne peut pas être supprimé. Vérifiez le champ **Statut** et réessayez après avoir arrêté le modèle en cours d’exécution, ou attendez la fin de l’entraînement. 

1. Choisissez **Supprimer le modèle** et la **boîte de dialogue Supprimer le modèle s’affiche**.

1. Saisissez **supprimer** pour confirmer la suppression. 

1. Choisissez **Supprimer** pour supprimer le modèle. La suppression du modèle peut prendre un certain temps.
**Note**  
Si vous choisissez de **Fermer** la boîte de dialogue pendant la suppression du modèle, les modèles sont quand même supprimés.

## Suppression d’un modèle Étiquettes personnalisées Amazon Rekognition (kit SDK)
<a name="tm-delete-model-sdk"></a>

Vous supprimez un modèle d'étiquettes personnalisées Amazon Rekognition en [DeleteProjectVersion](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteProjectVersion)appelant et en fournissant le nom de ressource Amazon (ARN) du modèle que vous souhaitez supprimer. Vous pouvez obtenir l’ARN du modèle depuis la section **Utiliser votre modèle** de la page de détails du modèle dans la console Étiquettes personnalisées Amazon Rekognition. Vous pouvez également appeler [DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions)et fournir les documents suivants.
+ ARN du projet (`ProjectArn`) auquel le modèle est associé.
+ Nom de la version (`VersionNames`) du modèle. 

L'ARN du modèle est le `ProjectVersionArn` champ de l'[ProjectVersionDescription](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProjectVersionDescription)objet, à partir de la `DescribeProjectVersions` réponse.

Vous ne pouvez pas supprimer un modèle s’il est en cours d’exécution ou d’entraînement. Pour déterminer si le modèle est en cours d'exécution ou en cours d'entraînement, appelez [DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions)et vérifiez le `Status` champ de l'[ProjectVersionDescription](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProjectVersionDescription)objet du modèle. Pour arrêter un modèle en cours d'exécution, utilisez l'[StopProjectVersion](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StopProjectVersion)API. Pour de plus amples informations, veuillez consulter [Arrêt d’un modèle Étiquettes personnalisées Amazon Rekognition (kit SDK)](rm-stop.md#rm-stop-sdk). Vous devez attendre la fin de l’entraînement d’un modèle pour pouvoir le supprimer. 

**Pour supprimer un modèle (kit SDK)**

1. Si ce n'est pas déjà fait, installez et configurez le AWS CLI et le AWS SDKs. Pour de plus amples informations, veuillez consulter [Étape 4 : configurer le AWS CLI et AWS SDKs](su-awscli-sdk.md).

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

------
#### [ AWS CLI ]

   Remplacez la valeur de `project-version-arn` 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` — ARN du projet qui contient le modèle que vous souhaitez supprimer.
   + `model_arn` — 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` — ARN du projet qui contient le modèle que vous souhaitez supprimer.
   + `model_arn` — 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);
           }
   
       }
   
   }
   ```

------