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.
Entraîner des modèles
Lorsque vous disposez d'un ensemble de données contenant un ensemble représentatif d'éléments d'entraînement étiquetés, vous pouvez créer et entraîner le modèle personnalisé.
UI Web
Ouvrez le tableau de bord 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é.
Le nom à afficher de l'ensemble de données sélectionné apparaît dans la barre de titre. La page répertorie chaque élément de l'ensemble de données et l'étiquette correspondante.
Lorsque vous avez terminé l'examen de l'ensemble de données, sélectionnez l'onglet Train (Entraînement) situé sous la barre de titre.
La page d'entraînement fournit une analyse de base de votre ensemble de données et vous indique s'il est adapté à l'entraînement (sélectionnez Label Stats (Statistiques relatives aux étiquettes) si cette option ne s'affiche pas immédiatement). Si AutoML Vision suggère des modifications, vous pouvez revenir à la page Images et ajouter des éléments ou des étiquettes.
Lorsque l'ensemble de données est prêt, sélectionnez Start training (Démarrer l'entraînement) ou Entraîner un nouveau modèle s'il existe des modèles existants.
Les options d'entraînement de modèle s'affichent dans une fenêtre latérale. 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 hébergé sur le cloud, sélectionnez Continuer.
Dans la section Set a node hour budget (Définir un budget à l'heure du nœud) de la fenêtre latérale, choisissez une valeur de budget d'entraînement appropriée en fonction de la taille de l'ensemble de données.
Par défaut, l'option 24 heures de noeud 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 classification des images est de 8. Pour la détection d'objets, ce nombre minimal est de 20.
Facultatif : Cochez la case check_box Déployer le modèle sur un nœud après l'entraînement pour activer le déploiement automatique du modèle une fois l'entraînement terminé.
Le déploiement automatique du modèle signifie que votre modèle sera disponible pour la prédiction immédiatement après l'entraînement. Lors du déploiement, des frais sont occasionnés. Ils sont détaillés sur la page Tarifs du modèle.
Sélectionnez Démarrer l'entraînement.
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).
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", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "cloud" } }
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 (ICN3819960680614725486
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/ICN3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-29T19:06:38.048492Z", "updateTime": "2019-10-29T19:06:38.048492Z", "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 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 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 AutoML Vision pour Ruby.
Répertorier les opérations
Si vous exécutez des opérations simultanées telles que l'entraînement de modèle, vous pouvez utiliser l'API pour afficher toutes les opérations en cours.
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.
Obtenir l'état d'une opération
Vous pouvez utiliser l'ID d'une opération spécifique pour obtenir des informations sur son état.
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 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 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 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 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-10-29T19:06:38.048492Z", "deploymentState": "UNDEPLOYED", "updateTime": "2019-10-29T19:35:19.104716Z", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "cloud", "nodeQps": 3.2 } }
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.
Entraînement avec reprise
Vous pouvez à présent interrompre et reprendre l'entraînement de votre modèle personnalisé pour des ensembles de données volumineux (comportant plus de 1 000 images). La mise en pause de l'entraînement d'un modèle n'est pas une action manuelle impliquant un bouton "Pause".
À la place, l'utilisateur définit le budget de nœuds-heures sur une période spécifiée, par exemple deux heures.
Une fois le temps écoulé, l'entraînement s'arrête automatiquement, quel que soit l'état du modèle.
L'entraînement avec reprise est disponible avec les restrictions suivantes :
- Durée limite du modèle de base : Vous ne pouvez reprendre l'entraînement que sur des modèles qui ont été entraînés au cours des 14 derniers jours. Les modèles de base créés plus de 14 jours avant votre requête ne sont pas éligibles à l'entraînement avec reprise.
- Aucune modification de libellé : L'entraînement avec reprise échoue si vous modifiez les étiquettes dans l'ensemble de données du modèle de base.
- Pas de garantie de meilleures performances : L'utilisation de l'entraînement avec reprise sur un modèle ne garantit pas de meilleures performances.
UI Web
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
-
Accédez à AutoML Vision 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é.
Le nom à afficher de l'ensemble de données sélectionné s'affiche dans la barre de titre. La page répertorie chaque élément de l'ensemble de données et l'étiquette correspondante.
Lorsque vous avez terminé d'examiner l'ensemble de données, sélectionnez l'onglet Train (Entraîner) juste en dessous de la barre de titre.
Si vous avez déjà entraîné des modèles, ils apparaissent sous forme de liste dans cet onglet.
Si l'entraînement avec reprise est disponible pour un modèle, l'option correspondante s'affiche à côté de See full evaluation (Voir l'évaluation complète).
Sélectionnez Resume training (Reprendre l'entraînement) pour reprendre l'entraînement sur un modèle applicable.
Comme pour l'entraînement du modèle d'origine, la sélection de Resume Training (Reprendre l'entraînement) ouvre une fenêtre latérale "Train new model" (Entraîner un nouveau modèle). Dans la section Define your model (Définir votre modèle), vous pouvez modifier le nom du nouveau modèle. Le nom du modèle de base utilisé pour l'entraînement y est également affiché.
Après avoir défini votre modèle, sélectionnez Continue (Continuer) pour passer à la section suivante.
Dans la section Set a node hour budget (Définir un budget pour une heure de nœud), spécifiez un budget. Ce budget est soumis à une grille tarifaire et à des restrictions de quota de la même façon que pour l'entraînement du modèle d'origine.
Après avoir spécifié un budget d'entraînement, sélectionnez Start Training(Démarrer l'entraînement). Vous recevrez un e-mail une fois l'entraînement avec reprise terminé.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- base-model-id : ID du modèle de base (existant). Le nouveau modèle est généré à partir de ce modèle de base. Les spécifications suivantes du nouveau modèle doivent correspondre au modèle de base :
- project
- emplacement
-
modelType
*
* Le paramètre
modelType
du nouveau modèle et du modèle de base est vérifié même si ce champ est omis dans la requête d'un nouveau modèle. - project-id : ID de votre projet GCP.
- display-name : nom à afficher de la chaîne de votre choix.
- 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 :
Méthode HTTP et URL :
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
Corps JSON de la requête :
{ "baseModelId": BASE_MODEL_ID, "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "mobile-low-latency-1" } }
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 (ICN2106290444865378475
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/ICN2106290444865378475", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-30T20:06:08.253243Z", "updateTime": "2019-10-30T20:06:08.253243Z", "createModelDetails": {} } }