Pour créer un modèle personnalisé, vous l'entraînez à l'aide d'un ensemble de données préparé. L'API AutoML utilise les éléments 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 Cloud AutoML vous permet de vérifier l'état de l'entraînement.
Étant donné qu'AutoML Vision crée un modèle à chaque fois que vous démarrez l'entraînement, votre projet peut inclure de nombreux modèles. Vous pouvez obtenir la liste des modèles de votre projet et supprimer les modèles dont vous n'avez plus besoin. Vous pouvez également utiliser l'interface utilisateur de Cloud AutoML Vision pour répertorier et supprimer les modèles créés via l'API AutoML dont vous n'avez plus besoin.
Les modèles sont basés sur des recherches de pointe menées par Google. Votre modèle sera disponible sous la forme d'un package TF Lite. Pour savoir comment intégrer un modèle TensorFlow Lite à l'aide du SDK TensorFlow Lite, reportez-vous aux liens pour iOS et Android.
Entraîner des modèles Edge
Lorsque vous disposez d'un ensemble de données contenant un ensemble cohérent d'éléments d'entraînement accompagnés de libellés, vous pouvez créer et entraîner votre modèle Edge personnalisé.
TensorFlow Serving et les modèles TF Lite
Lorsque vous entraînez des modèles Edge, vous pouvez spécifier trois valeurs distinctes dans le champ modelType
en fonction des besoins de votre modèle :
mobile-low-latency-1
pour une latence faiblemobile-versatile-1
pour une utilisation généralemobile-high-accuracy-1
pour une meilleure qualité de prédiction
Le type de modèle sera également affiché dans la réponse à la requête API.
UI Web
-
Accédez à AutoML Vision Object Detection UI.
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 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), modifiez le nom du modèle (ou utilisez la valeur par défaut) et sélectionnez le type de modèle radio_button_checked Edge. Après avoir choisi d'entraîner un modèle Edge, sélectionnez 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), Best tradeoff (Meilleur compromis) ou Faster prediction (Prédiction plus rapide). 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 une heure de nœud), utilisez le budget d'heures de nœud recommandé ou spécifiez une valeur différente.
Par défaut, l'option 24 heures de 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 de nœud pour la classification des images est de 8. Pour la détection d'objets, ce nombre minimal est de 20.
-
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.trainBudgetMilliNodeHours
: le budget d'entraînement pour la création de ce modèle, exprimé en millièmes d'heure de nœud (la valeur 1 000 dans ce champ correspond à 1 heure de 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
mobile-low-latency-1
,mobile-versatile-1
oumobile-high-accuracy-1
, le budget d'entraînement doit être compris entre 1 000 et 100 000 milli-nœuds-heures (inclus). La valeur par défaut est 24 000, ce qui correspond à une journée dans la durée d'exécution.
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": "mobile-low-latency-1", "trainBudgetMilliNodeHours": "24000" } }
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 (IOD2106290444865378475
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/IOD2106290444865378475", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-29T17:16:34.476787Z", "updateTime": "2019-07-29T17:16:34.476787Z", "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.
État des opérations de la liste
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 pour 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.
Obtenir l'état d'une opération
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 pour 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-29T17:16:34.476787Z", "deploymentState": "UNDEPLOYED", "updateTime": "2019-07-29T18:30:13.601461Z", "imageObjectDetectionModelMetadata": { "modelType": "mobile-low-latency-1", "nodeQps": -1, "stopReason": "MODEL_CONVERGED", "trainBudgetMilliNodeHours": "24000", "trainCostMilliNodeHours": "861" } }
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 pour 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.