Aggiungere immagini al set di dati - Amazon Lookout per Vision

Avviso di fine del supporto: il 31 ottobre 2025 AWS interromperà il supporto per Amazon Lookout for Vision. Dopo il 31 ottobre 2025, non potrai più accedere alla console Lookout for Vision o alle risorse Lookout for Vision. Per ulteriori informazioni, consulta questo post del blog.

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à.

Aggiungere immagini al set di dati

Dopo aver creato un set di dati, potresti voler aggiungere altre immagini al set di dati. Ad esempio, se la valutazione del modello indica che il modello è scadente, è possibile migliorarne la qualità aggiungendo altre immagini. Se avete creato un set di dati di test, l'aggiunta di altre immagini può aumentare la precisione delle metriche prestazionali del modello.

Riaddestrate il modello dopo aver aggiornato i set di dati.

Aggiungere altre immagini

Puoi aggiungere altre immagini ai tuoi set di dati caricando immagini dal tuo computer locale. Per aggiungere altre immagini etichettate con ilSDK, usa l'operazione. UpdateDatasetEntries

Per aggiungere altre immagini al set di dati (console)
  1. Scegli Azioni e seleziona il set di dati a cui desideri aggiungere immagini.

  2. Scegli le immagini che desideri caricare nel set di dati. Puoi trascinare le immagini o scegliere le immagini che desideri caricare dal tuo computer locale. Puoi caricare fino a 30 immagini alla volta.

  3. Scegli Carica immagini.

  4. Scegli Save changes (Salva modifiche).

Quando hai finito di aggiungere altre immagini, devi etichettarle in modo che possano essere utilizzate per addestrare il modello. Per ulteriori informazioni, consulta Classificazione delle immagini (console).

Aggiungere altre immagini (SDK)

Per aggiungere altre immagini etichettate con ilSDK, usate l'UpdateDatasetEntriesoperazione. Fornite un file manifesto che contiene le immagini che desiderate aggiungere. È inoltre possibile aggiornare le immagini esistenti specificando l'immagine nel source-ref campo della JSON riga del file manifesto. Per ulteriori informazioni, consulta Creazione di un file manifesto.

Per aggiungere altre immagini a un set di dati () SDK
  1. Se non l'hai già fatto, installa e configura il file AWS CLI e il AWS SDKs. Per ulteriori informazioni, consulta Fase 4: Configurare e AWS CLIAWS SDKs.

  2. Usa il seguente codice di esempio per aggiungere altre immagini a un set di dati.

    CLI

    Imposta i valori seguenti:

    • project-nameal nome del progetto che contiene il set di dati che desideri aggiornare.

    • dataset-typeal tipo di set di dati che desideri aggiornare (trainotest).

    • changesalla posizione del file manifesto che contiene gli aggiornamenti dei set di dati.

    aws lookoutvision update-dataset-entries\ --project-name project\ --dataset-type train or test\ --changes fileb://manifest file \ --profile lookoutvision-access
    Python

    Questo codice è tratto dal GitHub repository AWS Documentation SDK examples. Guarda l'esempio completo qui.

    @staticmethod def update_dataset_entries(lookoutvision_client, project_name, dataset_type, updates_file): """ Adds dataset entries to an Amazon Lookout for Vision dataset. :param lookoutvision_client: The Amazon Rekognition Custom Labels Boto3 client. :param project_name: The project that contains the dataset that you want to update. :param dataset_type: The type of the dataset that you want to update (train or test). :param updates_file: The manifest file of JSON Lines that contains the updates. """ try: status = "" status_message = "" manifest_file = "" # Update dataset entries logger.info(f"""Updating {dataset_type} dataset for project {project_name} with entries from {updates_file}.""") with open(updates_file) as f: manifest_file = f.read() lookoutvision_client.update_dataset_entries( ProjectName=project_name, DatasetType=dataset_type, Changes=manifest_file, ) finished = False while finished == False: dataset = lookoutvision_client.describe_dataset(ProjectName=project_name, DatasetType=dataset_type) status = dataset['DatasetDescription']['Status'] status_message = dataset['DatasetDescription']['StatusMessage'] if status == "UPDATE_IN_PROGRESS": logger.info( (f"Updating {dataset_type} dataset for project {project_name}.")) time.sleep(5) continue if status == "UPDATE_FAILED_ROLLBACK_IN_PROGRESS": logger.info( (f"Update failed, rolling back {dataset_type} dataset for project {project_name}.")) time.sleep(5) continue if status == "UPDATE_COMPLETE": logger.info( f"Dataset updated: {status} : {status_message} : {dataset_type} dataset for project {project_name}.") finished = True continue if status == "UPDATE_FAILED_ROLLBACK_COMPLETE": logger.info( f"Rollback complated after update failure: {status} : {status_message} : {dataset_type} dataset for project {project_name}.") finished = True continue logger.exception( f"Failed. Unexpected state for dataset update: {status} : {status_message} : {dataset_type} dataset for project {project_name}.") raise Exception( f"Failed. Unexpected state for dataset update: {status} : {status_message} :{dataset_type} dataset for project {project_name}.") logger.info(f"Added entries to dataset.") return status, status_message except ClientError as err: logger.exception( f"Couldn't update dataset: {err.response['Error']['Message']}") raise
    Java V2

    Questo codice è tratto dal GitHub repository AWS Documentation SDK examples. Guarda l'esempio completo qui.

    /** * Updates an Amazon Lookout for Vision dataset from a manifest file. * Returns after Lookout for Vision updates the dataset. * * @param lfvClient An Amazon Lookout for Vision client. * @param projectName The name of the project in which you want to update a * dataset. * @param datasetType The type of the dataset that you want to update (train or * test). * @param manifestFile The name and location of a local manifest file that you want to * use to update the dataset. * @return DatasetStatus The status of the updated dataset. */ public static DatasetStatus updateDatasetEntries(LookoutVisionClient lfvClient, String projectName, String datasetType, String updateFile) throws FileNotFoundException, LookoutVisionException, InterruptedException { logger.log(Level.INFO, "Updating {0} dataset for project {1}", new Object[] { datasetType, projectName }); InputStream sourceStream = new FileInputStream(updateFile); SdkBytes sourceBytes = SdkBytes.fromInputStream(sourceStream); UpdateDatasetEntriesRequest updateDatasetEntriesRequest = UpdateDatasetEntriesRequest.builder() .projectName(projectName) .datasetType(datasetType) .changes(sourceBytes) .build(); lfvClient.updateDatasetEntries(updateDatasetEntriesRequest); boolean finished = false; DatasetStatus status = null; // Wait until update completes. do { DescribeDatasetRequest describeDatasetRequest = DescribeDatasetRequest.builder() .projectName(projectName) .datasetType(datasetType) .build(); DescribeDatasetResponse describeDatasetResponse = lfvClient .describeDataset(describeDatasetRequest); DatasetDescription datasetDescription = describeDatasetResponse.datasetDescription(); status = datasetDescription.status(); switch (status) { case UPDATE_COMPLETE: logger.log(Level.INFO, "{0} Dataset updated for project {1}.", new Object[] { datasetType, projectName }); finished = true; break; case UPDATE_IN_PROGRESS: logger.log(Level.INFO, "{0} Dataset update for project {1} in progress.", new Object[] { datasetType, projectName }); TimeUnit.SECONDS.sleep(5); break; case UPDATE_FAILED_ROLLBACK_IN_PROGRESS: logger.log(Level.SEVERE, "{0} Dataset update failed for project {1}. Rolling back", new Object[] { datasetType, projectName }); TimeUnit.SECONDS.sleep(5); break; case UPDATE_FAILED_ROLLBACK_COMPLETE: logger.log(Level.SEVERE, "{0} Dataset update failed for project {1}. Rollback completed.", new Object[] { datasetType, projectName }); finished = true; break; default: logger.log(Level.SEVERE, "{0} Dataset update failed for project {1}. Unexpected error returned.", new Object[] { datasetType, projectName }); finished = true; } } while (!finished); return status; }
  3. Ripeti il passaggio precedente e fornisci i valori per l'altro tipo di set di dati.