Wenn Sie ein benutzerdefiniertes Modell erstellen möchten, trainieren Sie es mithilfe eines vorbereiteten Datasets. Das Modell wird in der AutoML API mithilfe der Elemente des Datasets trainiert, getestet und hinsichtlich seiner Leistung bewertet. Sie überprüfen die Ergebnisse, passen das Trainings-Dataset nach Bedarf an und trainieren ein neues Modell mithilfe des verbesserten Datasets.
Das Trainieren eines Modells kann mehrere Stunden dauern. Mit der AutoML API haben Sie die Möglichkeit, den Status des Trainings zu überprüfen.
AutoML Vision erstellt jedes Mal ein neues Modell, wenn Sie mit dem Training beginnen. Daher kann das Projekt zahlreiche Modelle enthalten. Sie können eine Liste der verfügbaren Modelle in Ihrem Projekt abrufen und nicht mehr benötigte Modelle löschen. Alternativ können Sie die Cloud AutoML Vision-UI verwenden, um über die AutoML API erstellte Modelle aufzulisten und die zu löschen, die Sie nicht mehr benötigen.
Modelle basieren auf den neuesten Forschungsergebnissen von Google. Ihr Modell ist als TF Lite-Paket verfügbar. Weitere Informationen zum Integrieren eines TensorFlow Lite-Modells mithilfe des TensorFlow Lite SDK finden Sie unter den folgenden Links für iOS und Android.
Edge-Modelle trainieren
Wenn Sie ein Dataset mit einer ausreichenden Anzahl von Trainingselementen mit Labels haben, können Sie ein benutzerdefiniertes Modell erstellen und trainieren.
TensorFlow Serving und TF Lite-Modelle
Wenn Sie Edge-Modelle trainieren, können Sie abhängig von Ihren Modellanforderungen drei verschiedene Werte im Feld modelType
angeben:
mobile-low-latency-1
für niedrige Latenz,mobile-versatile-1
für allgemeine Zwecke odermobile-high-accuracy-1
für eine höhere Vorhersagequalität.
Der Modelltyp wird auch in der Antwort einer API-Anfrage aufgeführt.
Web-UI
-
Öffnen Sie AutoML Vision Object Detection UI.
Auf der Seite Datasets werden die verfügbaren Datasets für das aktuelle Projekt angezeigt.
- Wählen Sie das Dataset aus, das Sie zum Trainieren des benutzerdefinierten Modells verwenden möchten.
-
Wenn das Dataset bereit ist, wählen Sie den Tab Trainieren und die Schaltfläche Neues Modell trainieren aus.
Dadurch wird ein Seitenfenster Neues Modell trainieren mit Trainingsoptionen geöffnet.
- Ändern Sie im Trainingsbereich Modell bestimmen den Modellnamen bzw. verwenden Sie den Standardnamen. Wählen Sie dann radio_button_checked Edge als Modelltyp aus. Nachdem Sie die Option zum Trainieren eines Edge-Modells ausgewählt haben, klicken Sie auf Continue (Weiter).
-
Wählen Sie im folgenden Abschnitt Optimize model for (Modell optimieren für) das Kriterium aus, nach dem Sie das Modell optimieren möchten: radio_button_checked Higher accuracy (Höhere Genauigkeit), Best trade-off (Bester Kompromiss) oder Faster predictions (Schnellere Vorhersagen). Wählen Sie anschließend Weiter aus.
-
Verwenden Sie anschließend im Bereich Knotenstundenbudget festlegen das empfohlene Knotenstundenbudget oder geben Sie einen anderen Wert ein.
Standardmäßig sind 24 Knotenstunden für die meisten Datasets ausreichend, um das Modell zu trainieren. Dieser empfohlene Wert ist eine Schätzung, mit der das Modell vollständig konvergent wird. Sie können jedoch einen anderen Wert auswählen. Die Mindestanzahl an Knotenstunden für die Bildklassifizierung beträgt 8. Für die Objekterkennung beträgt dieser Mindestwert 20.
-
Wählen Sie Start training (Training starten), um mit dem Modelltraining zu beginnen.
Das Trainieren eines Modells kann mehrere Stunden dauern. Nachdem das Modell erfolgreich trainiert wurde, erhalten Sie eine Nachricht an die E-Mail-Adresse, die Sie für Ihr Google Cloud Platform-Projekt verwendet haben.
REST
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- project-id: die ID Ihres GCP-Projekts.
- dataset-id: die ID Ihres Datasets. Die ID ist das letzte Element des Dataset-Namens. Beispiel:
- Dataset-Name:
projects/project-id/locations/location-id/datasets/3104518874390609379
- Dataset-ID:
3104518874390609379
- Dataset-Name:
- display-name: Ein anzuzeigender Stringname Ihrer Wahl.
Überlegungen zu bestimmten Feldern:
imageObjectDetectionModelMetadata.trainBudgetMilliNodeHours
: Das Trainingsbudget zur Erstellung dieses Modells, ausgedrückt in Milli-Knotenstunden (der Wert 1.000 in diesem Feld bedeutet 1 Knotenstunde). Der tatsächliche Wert vontrainCostMilliNodeHours
ist gleich oder kleiner als dieser Wert. Wenn das weitere Modelltraining keine Verbesserungen mehr bietet, wird es ohne Verwendung des vollen Budgets beendet und der Wert fürstopReason
istMODEL_CONVERGED
.Hinweis: Knotenstunde = tatsächliche Stunden * Anzahl der beteiligten Knoten.
Für den Modelltyp
mobile-low-latency-1
,mobile-versatile-1
odermobile-high-accuracy-1
muss das Trainingsbudget zwischen 1.000 und 100.000 Milli-Knotenstunden (einschließlich) liegen. Der Standardwert beträgt 24.000, was einem Tag in Echtzeit entspricht.
HTTP-Methode und URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
JSON-Text der Anfrage:
{ "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageObjectDetectionModelMetadata": { "modelType": "mobile-low-latency-1", "trainBudgetMilliNodeHours": "24000" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Die Ausgabe sieht in etwa so aus: Sie können den Status der Aufgabe anhand der Vorgangs-ID abrufen (in diesem Fall IOD2106290444865378475
). Ein Beispiel finden Sie unter Mit Vorgängen mit langer Ausführungszeit arbeiten.
{ "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
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Vorgangsstatus auflisten
Verwenden Sie die folgenden Codebeispiele, um die Vorgänge Ihres Projekts aufzulisten und die Ergebnisse zu filtern.
REST
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- project-id: die ID Ihres GCP-Projekts.
HTTP-Methode und URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Welche Ausgabe angezeigt wird, hängt von den angefragten Vorgängen ab.
Sie können die zurückgegebenen Vorgänge auch filtern. Verwenden Sie dafür ausgewählte Suchparameter wie operationId
, done
und worksOn
. Wenn Sie beispielsweise eine Liste der Vorgänge, die bereits ausgeführt wurden, zurückgeben möchten, ändern Sie die URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations?filter="done=true"
Go
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite APIs und Referenz > Clientbibliotheken.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite APIs und Referenz > Clientbibliotheken.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite APIs und Referenz > Clientbibliotheken.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite APIs und Referenz > Clientbibliotheken.
Weitere Sprachen
C#: Folgen Sie der Anleitung zur Einrichtung von C# auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für .NET auf.
PHP: Folgen Sie der Anleitung zur Einrichtung von PHP auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für PHP auf.
Ruby: Folgen Sie der Anleitung zur Einrichtung von Ruby auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für Ruby auf.
Status eines Vorgangs abrufen
REST
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- project-id: die ID Ihres GCP-Projekts.
- operation-id: ID des Vorgangs. Die ID ist das letzte Element des Vorgangsnamens. Beispiel:
- Name des Vorgangs:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- Vorgangs-ID:
IOD5281059901324392598
- Name des Vorgangs:
HTTP-Methode und URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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" } }
Die Ausgabe für einen abgeschlossenen -Vorgang zum Erstellen eines Modells sollte in etwa so aussehen:
{ "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
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Weitere Sprachen
C#: Folgen Sie der Anleitung zur Einrichtung von C# auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für .NET auf.
PHP: Folgen Sie der Anleitung zur Einrichtung von PHP auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für PHP auf.
Ruby: Folgen Sie der Anleitung zur Einrichtung von Ruby auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für Ruby auf.
Vorgang abbrechen
Sie können eine Import- oder Trainingsaufgabe mit der Vorgangs-ID abbrechen.
REST
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die ID Ihres GCP-Projekts.
- operation-id: ID des Vorgangs. Die ID ist das letzte Element des Vorgangsnamens. Beispiel:
- Name des Vorgangs:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- Vorgangs-ID:
IOD5281059901324392598
- Name des Vorgangs:
HTTP-Methode und URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
{}
Informationen zu einem Modell abrufen
Verwenden Sie die folgenden Codebeispiele, um Informationen zu einem bestimmten trainierten Modell abzurufen. Sie können die von dieser Anfrage zurückgegebenen Informationen verwenden, um den Modus zu ändern oder eine Vorhersageanfrage zu senden.
REST
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- project-id: die ID Ihres GCP-Projekts.
- model-id: die ID Ihres Modells aus der Antwort beim Erstellen des Modells. Sie ist das letzte Element des Modellnamens.
Beispiel:
- Modellname:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- Modell-ID:
IOD4412217016962778756
- Modellname:
HTTP-Methode und URL:
GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Weitere Sprachen
C#: Folgen Sie der Anleitung zur Einrichtung von C# auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für .NET auf.
PHP: Folgen Sie der Anleitung zur Einrichtung von PHP auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für PHP auf.
Ruby: Folgen Sie der Anleitung zur Einrichtung von Ruby auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für Ruby auf.