Eliminazione di un modello di Amazon Rekognition Custom Labels - Rekognition

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Eliminazione di un modello di Amazon Rekognition Custom Labels

Puoi eliminare un modello utilizzando la console Amazon Rekognition Custom Labels o utilizzando l'DeleteProjectVersionAPI. Non è possibile eliminare un modello se è in esecuzione o in allenamento. Per interrompere un modello in esecuzione, usa l'StopProjectVersionAPI. Per ulteriori informazioni, consulta Interruzione di un modello Amazon Rekognition Custom Labels (SDK). Se un modello è in fase di addestramento, attendi che finisca prima di eliminare il modello.

Un modello eliminato non può essere ripristinato.

Eliminazione di un modello di Amazon Rekognition Custom Labels (console)

La procedura seguente mostra come eliminare un modello da una pagina dei dettagli del progetto. Puoi anche eliminare un modello dalla pagina dei dettagli di un modello.

Come aggiornare un modello (console)
  1. Apri la console Amazon Rekognition all'indirizzo https://console.aws.amazon.com/rekognition/.

  2. Scegli Usa etichette personalizzate.

  3. Scegliere Inizia.

  4. Nel riquadro di navigazione a sinistra scegliere Progetti.

  5. Scegliere il progetto contenente il modello per cui eseguire l'eliminazione. Visualizzerai la pagina dei dettagli del progetto.

  6. Nella sezione Modelli, seleziona i modelli che desideri eliminare.

    Nota

    Se il modello non può essere selezionato, è in esecuzione o in allenamento e non può essere eliminato. Controlla il campo Stato e riprova dopo aver interrotto il modello in esecuzione oppure attendi il termine dell'allenamento.

  7. Scegliete Elimina modello e viene visualizzata la finestra di dialogo Elimina modello.

  8. Digitare Elimina per confermare l'eliminazione.

  9. Scegliere Delete (Elimina) per eliminare il modello. Il completamento dell'eliminazione del modello potrebbe richiedere del tempo.

    Nota

    Se chiudete la finestra di dialogo durante l'eliminazione del modello, i modelli vengono comunque eliminati.

Eliminazione di un modello di Amazon Rekognition Custom Labels (SDK)

È possibile eliminare un modello Amazon Rekognition Custom Labels chiamando DeleteProjectVersione specificando l'Amazon Resource Name (ARN) del modello che si desidera eliminare. Puoi ottenere l'ARN del modello dalla sezione Usa il tuo modello della pagina dei dettagli del modello nella console Amazon Rekognition Custom Labels. In alternativa, chiama DescribeProjectVersionse fornisci quanto segue.

  • L'ARN del progetto (ProjectArn) a cui è associato il modello.

  • Il nome della versione (VersionNames) del modello.

Il modello ARN è ilProjectVersionArn campo nell'ProjectVersionDescriptionoggetto, dallaDescribeProjectVersions risposta.

Non è possibile eliminare un modello se è in esecuzione o in allenamento. Per determinare se il modello è in esecuzione o in allenamento, chiama DescribeProjectVersionse controlla ilStatus campo dell'ProjectVersionDescriptionoggetto del modello. Per interrompere un modello in esecuzione, usa l'StopProjectVersionAPI. Per ulteriori informazioni, consulta Interruzione di un modello Amazon Rekognition Custom Labels (SDK). È necessario attendere che un modello finisca l'addestramento prima di poterlo eliminare.

Per eliminare un modello (SDK)
  1. Se non l'hai ancora fatto, installa e configura l'SDKAWS CLI e gliAWS SDK. Per ulteriori informazioni, consulta Passaggio 4: configura il AWS CLI e AWS SDKs.

  2. Eseguire il il il il il il il il il il il il il il il il il

    AWS CLI

    Cambia il valoreproject-version-arn di con il nome del progetto che desideri eliminare.

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

    Fornire i i parametri della riga di comando:

    • project_arn— l'ARN del progetto che contiene il modello che si desidera eliminare.

    • model_arn— l'ARN della versione del modello che si desidera eliminare.

    # 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 del progetto che contiene il modello che si desidera eliminare.

    • model_arn— l'ARN della versione del modello che si desidera eliminare.

    //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); } } }