Pour créer un modèle personnalisé, vous l'entraînez à l'aide d'un ensemble de données préparé. L'API AutoML Vision utilise les images de l'ensemble de données pour entraîner le modèle, le tester et évaluer ses performances. Vous examinez les résultats, ajustez l'ensemble de données d'entraînement si nécessaire et entraînez un nouveau modèle à l'aide de l'ensemble de données amélioré.
L'entraînement d'un modèle peut prendre plusieurs heures. L'API AutoML Vision vous permet de vérifier l'état de l'entraînement.
Entraîner des modèles
Lorsque vous disposez d'un ensemble de données contenant un ensemble cohérent d'images d'entraînement annotées avec des cadres de délimitation et des étiquettes, vous pouvez créer et entraîner le modèle personnalisé.
UI Web
Ouvrez l'UI de détection d'objets AutoML Vision.
La page Ensembles de données affiche les ensembles de données disponibles pour le projet en cours.
Sélectionnez l'ensemble de données à utiliser pour entraîner le modèle personnalisé.
Lorsque l'ensemble de données est prêt, sélectionnez l'onglet Entraînement et cliquez sur Train new model (Entraîner un nouveau modèle).
Une fenêtre latérale Entraîner un nouveau modèle s'ouvre et propose des options d'entraînement.
Dans la section Define your model (Définir votre modèle), spécifiez un Model name (Nom de modèle) ou acceptez le nom par défaut. Sélectionnez radio_button_checked Cloud hosted (Hébergé dans le cloud) comme type de modèle s'il n'est pas déjà spécifié. Après avoir choisi d'entraîner un modèle Edge, cliquez sur Continue (Continuer).
Dans la section suivante Optimize model for (Optimiser le modèle pour), sélectionnez les critères d'optimisation souhaités : radio_button_checked Higher accuracy (Justesse supérieure) ou Faster predictions (Prédictions plus rapides). Après avoir sélectionné la spécification d'optimisation, cliquez sur Continue (Continuer).
Dans la section suivante Set a node hour budget (Définir un budget pour un heure-nœud), indiquez votre budget d'heures-nœud.
Par défaut, l'option 24 heures-nœud devrait suffire pour la plupart des ensembles de données. Cette valeur recommandée correspond à la durée estimée permettant d'assurer la convergence totale du modèle. Toutefois, vous pouvez choisir une autre durée. Le nombre minimal d'heures-nœud pour la détection d'objets est de 20. Pour la classification d'images, ce montant minimal est de 8.
Dans cette section, vous pouvez également activer le déploiement automatique de votre modèle après l'entraînement en sélectionnant check_boxDéployer le modèle sur un nœud après l'entraînement. Sinon, vous devrez déployer manuellement votre modèle une fois l'entraînement terminé.
Sélectionnez Démarrer l'entraînement pour commencer l'entraînement de modèle.
L'entraînement d'un modèle peut prendre plusieurs heures. Une fois le modèle correctement entraîné, vous recevez un message à l'adresse e-mail que vous avez utilisée pour votre projet Google Cloud Platform.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID de votre projet GCP.
- dataset-id : ID de votre ensemble de données. L'ID correspond au dernier élément du nom de l'ensemble de données. Exemple :
- Nom de l'ensemble de données :
projects/project-id/locations/location-id/datasets/3104518874390609379
- ID de l'ensemble de données :
3104518874390609379
- Nom de l'ensemble de données :
- display-name : nom à afficher (chaîne de votre choix).
Remarques sur les champs :
imageObjectDetectionModelMetadata.modelType
: indique l'une des deux options disponibles pour optimiser le modèle :cloud-low-latency-1
: optimise l'entraînement pour la latence.cloud-high-accuracy-1
: optimise l'entraînement pour plus de précision.imageObjectDetectionModelMetadata.trainBudgetMilliNodeHours
: le budget d'entraînement pour la création de ce modèle, exprimé en millièmes d'heures-nœud (la valeur 1 000 dans ce champ correspond à 1 heure-nœud). La coût réeltrainCostMilliNodeHours
sera inférieur ou égal à cette valeur. Si un autre entraînement de modèle ne fournit aucune amélioration, celui-ci s'arrêtera sans utiliser le budget complet et lestopReason
seraMODEL_CONVERGED
.Remarque : node_hour = actual_hour * number_of_nodes_involved (l'heure de nœud correspond à l'heure actuelle multipliée par le nombre de nœuds concernés).
Pour les types de modèle
cloud-high-accuracy-1
(par défaut) etcloud-low-latency-1
, le budget d'entraînement doit être compris entre 20 000 et 2 000 000 millièmes d'heures-nœud (inclus). La valeur par défaut est 216 000, ce qui correspond à une durée d'exécution d'une journée.
Méthode HTTP et URL :
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
Corps JSON de la requête :
{ "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageObjectDetectionModelMetadata": { "modelType": "cloud-low-latency-1", "trainBudgetMilliNodeHours": "216000" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models" | Select-Object -Expand Content
Des résultats semblables aux lignes suivantes devraient s'afficher : Vous pouvez utiliser l'ID d'opération (IOD3074819451447675546
dans ce cas) pour connaître l'état de la tâche. Pour consulter un exemple, reportez-vous à la section Travailler avec des opérations de longue durée.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/IOD3074819451447675546", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-26T21:10:18.338846Z", "updateTime": "2019-07-26T21:10:18.338846Z", "createModelDetails": {} } }
Go
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Java
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Node.js
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Python
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour PHP.
Ruby : Veuillez suivre les Instructions de configuration de Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour Ruby.
Répertorier les opérations
Utilisez les exemples de code suivants pour répertorier les opérations de votre projet et filtrer les résultats.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID de votre projet GCP.
Méthode HTTP et URL :
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations"
PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations" | Select-Object -Expand Content
Les résultats affichés varient en fonction des opérations demandées.
Vous pouvez également filtrer les opérations renvoyées à l'aide de certains paramètres de requête (operationId
, done
et worksOn
). Par exemple, pour afficher la liste des opérations terminées, modifiez l'URL :
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations?filter="done=true"
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour ce langage sur la page API et documentation de référence > Bibliothèques clientes.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour ce langage sur la page API et documentation de référence > Bibliothèques clientes.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour ce langage sur la page API et documentation de référence > Bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour ce langage sur la page API et documentation de référence > Bibliothèques clientes.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour PHP.
Ruby : Veuillez suivre les Instructions de configuration de Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour Ruby.
Travailler avec des opérations de longue durée
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID de votre projet GCP.
- operation-id : ID de l'opération. L'ID est le dernier élément du nom de l'opération. Exemple :
- Nom de l'opération :
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- ID de l'opération :
IOD5281059901324392598
- Nom de l'opération :
Méthode HTTP et URL :
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Vous devez obtenir un résultat semblable au suivant à l'issue d'une opération de création de modèle :
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Java
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Node.js
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Python
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour PHP.
Ruby : Veuillez suivre les Instructions de configuration de Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour Ruby.
Annuler une opération
Vous pouvez annuler une tâche d'importation ou d'entraînement à l'aide de l'ID d'opération.
REST
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID de votre projet GCP.
- operation-id : ID de l'opération. L'ID est le dernier élément du nom de l'opération. Exemple :
- Nom de l'opération :
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- ID de l'opération :
IOD5281059901324392598
- Nom de l'opération :
Méthode HTTP et URL :
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel"
PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
{}
Obtenir des informations sur un modèle
Utilisez les exemples de code suivants pour obtenir des informations sur un modèle entraîné spécifique. Vous pouvez utiliser les informations renvoyées par cette requête pour modifier le mode ou envoyer une requête de prédiction.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID de votre projet GCP.
- model-id : ID de votre modèle, issu de la réponse obtenue lors de sa création. L'ID est le dernier élément du nom du modèle.
Exemple :
- Nom du modèle :
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID du modèle :
IOD4412217016962778756
- Nom du modèle :
Méthode HTTP et URL :
GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id"
PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/project-id/locations/us-central1/models/model-id", "displayName": "display-name", "datasetId": "dataset-id", "createTime": "2019-07-26T21:10:18.338846Z", "deploymentState": "UNDEPLOYED", "updateTime": "2019-07-26T22:28:57.464076Z", "imageObjectDetectionModelMetadata": { "modelType": "cloud-low-latency-1", "nodeQps": 1.2987012987012987, "stopReason": "MODEL_CONVERGED", "trainBudgetMilliNodeHours": "216000", "trainCostMilliNodeHours": "8230" } }
Go
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Java
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Node.js
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Python
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour PHP.
Ruby : Veuillez suivre les Instructions de configuration de Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur la détection d'objets AutoML Vision pour Ruby.