Avis de fin de support : le 31 octobre 2025, le support d'Amazon Lookout for Vision AWS sera interrompu. Après le 31 octobre 2025, vous ne pourrez plus accéder à la console Lookout for Vision ni aux ressources Lookout for Vision. Pour plus d'informations, consultez ce billet de blog.
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.
Ajouter des images à votre jeu de données
Après avoir créé un jeu de données, vous souhaiterez peut-être y ajouter d'autres images. Par exemple, si l'évaluation du modèle indique un modèle médiocre, vous pouvez améliorer la qualité de votre modèle en ajoutant des images supplémentaires. Si vous avez créé un jeu de données de test, l'ajout d'images supplémentaires peut améliorer la précision des indicateurs de performance de votre modèle.
Réentraînez votre modèle après avoir mis à jour vos ensembles de données.
Ajout d’autres images
Vous pouvez ajouter d'autres images à vos ensembles de données en téléchargeant des images depuis votre ordinateur local. Pour ajouter d'autres images étiquetées avec leSDK, utilisez l'UpdateDatasetEntriesopération.
Pour ajouter d’autres images à votre jeu de données (console)
-
Choisissez Actions et sélectionnez le jeu de données auquel vous souhaitez ajouter des images.
-
Choisissez les images que vous souhaitez charger dans le jeu de données. Vous pouvez faire glisser les images ou choisir celles que vous souhaitez charger à partir de votre ordinateur local. Vous pouvez charger jusqu’à 30 images à la fois.
-
Choisissez Charger des images.
-
Sélectionnez Enregistrer les modifications.
Lorsque vous avez terminé d'ajouter d'autres images, vous devez les étiqueter afin qu'elles puissent être utilisées pour entraîner le modèle. Pour de plus amples informations, veuillez consulter Classification des images (console).
Ajouter d'autres images (SDK)
Pour ajouter d'autres images étiquetées avec leSDK, utilisez l'UpdateDatasetEntriesopération. Vous fournissez un fichier manifeste contenant les images que vous souhaitez ajouter. Vous pouvez également mettre à jour les images existantes en spécifiant l'image dans le source-ref
champ de la JSON ligne du fichier manifeste. Pour de plus amples informations, veuillez consulter Création d’un fichier manifeste.
Pour ajouter d'autres images à un ensemble de données (SDK)
-
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 : Configurez le AWS CLI et AWS SDKs.
-
Utilisez l'exemple de code suivant pour ajouter d'autres images à un ensemble de données.
- CLI
-
Remplacez les valeurs suivantes :
-
project-name
au nom du projet qui contient le jeu de données que vous souhaitez mettre à jour.
-
dataset-type
au type de jeu de données que vous souhaitez mettre à jour (train
outest
).
-
changes
à l'emplacement du fichier manifeste contenant les mises à jour de l'ensemble de données.
aws lookoutvision update-dataset-entries\
--project-name project
\
--dataset-type train or test
\
--changes fileb://manifest file
\
--profile lookoutvision-access
- Python
-
Ce code est extrait du GitHub référentiel d'SDKexemples de AWS documentation. Voir l’exemple complet ici.
@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
-
Ce code est extrait du GitHub référentiel d'SDKexemples de AWS documentation. Voir l’exemple complet ici.
/**
* 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;
}
-
Répétez l'étape précédente et fournissez des valeurs pour l'autre type de jeu de données.