Añadir imágenes a su conjunto de datos. - Amazon Lookout for Vision

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Añadir imágenes a su conjunto de datos.

Después de crear un conjunto de datos, es posible que desee agregar más imágenes al conjunto de datos. Por ejemplo, si la evaluación del modelo indica que el modelo es deficiente, puede mejorar la calidad del modelo añadiendo más imágenes. Si ha creado un conjunto de datos de prueba, añadir más imágenes puede aumentar la precisión de las métricas de rendimiento del modelo.

Vuelva a entrenar el modelo después de actualizar los conjuntos de datos.

Añadir más imágenes

Puede añadir más imágenes a sus conjuntos de datos cargando imágenes desde su ordenador local. Para añadir más imágenes etiquetadas con el SDK, use la operación UpdateDatasetEntries.

Cómo añadir más imágenes a su conjunto de datos (consola)
  1. Elija Acciones y seleccione el conjunto de datos al que desee añadir las imágenes.

  2. Escoja las imágenes que quiera cargar en el conjunto de datos. Puede arrastrar las imágenes o elegir las imágenes deseadas de su ordenador local. Puede cargar hasta 30 imágenes a la vez.

  3. Seleccione Cargar imágenes.

  4. Elija Save changes (Guardar cambios).

Cuando termine de añadir más imágenes, tendrá que etiquetarlas para que puedan usarse para entrenar al modelo. Para obtener más información, consulte Clasificación de imágenes (consola).

Añadir más imágenes (SDK)

Para añadir más imágenes etiquetadas con el SDK, use la operación UpdateDatasetEntries. Proporcione un archivo de manifiesto que contiene las imágenes que desea agregar. También puede actualizar las imágenes existentes especificando la imagen en el source-ref campo de la línea JSON del archivo de manifiesto. Para obtener más información, consulte Creación de un archivo de manifiesto.

Cómo añadir más imágenes a un conjunto de datos (SDK)
  1. Si aún no lo ha hecho, instale y configure la AWS CLI y los SDK de AWS. Para obtener más información, consulte Paso 4: Configura el AWS CLI y AWS SDKs.

  2. Use el siguiente código de ejemplo para añadir más imágenes a un conjunto de datos.

    CLI

    Cambie los siguientes valores:

    • project-name al nombre del proyecto que incluye el conjunto de datos que desea actualizar.

    • dataset-type el tipo de conjunto de datos que desea actualizar (train o test).

    • changes a la ubicación del archivo de manifiesto que contiene las actualizaciones del conjunto de datos.

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

    Este código se ha tomado del repositorio GitHub de ejemplos del SDK de documentación AWS. Consulte el ejemplo completo aquí.

    @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

    Este código se ha tomado del repositorio GitHub de ejemplos del SDK de documentación AWS. Consulte el ejemplo completo aquí.

    /** * 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. Repita el paso anterior y proporcione valores para el otro tipo de conjunto de datos.