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)
Apri la console Amazon Rekognition all'indirizzo https://console.aws.amazon.com/rekognition/.
-
Scegli Usa etichette personalizzate.
-
Scegliere Inizia.
-
Nel riquadro di navigazione a sinistra scegliere Progetti.
-
Scegliere il progetto contenente il modello per cui eseguire l'eliminazione. Visualizzerai la pagina dei dettagli del progetto.
-
Nella sezione Modelli, seleziona i modelli che desideri eliminare.
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.
-
Scegliete Elimina modello e viene visualizzata la finestra di dialogo Elimina modello.
-
Digitare Elimina per confermare l'eliminazione.
-
Scegliere Delete (Elimina) per eliminare il modello. Il completamento dell'eliminazione del modello potrebbe richiedere del tempo.
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.
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)
-
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.
-
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:
# 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
-
//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);
}
}
}