Vorhersagen mit importierten TensorFlow-Modellen erstellen
Überblick
Auf dieser Seite erfahren Sie, wie Sie TensorFlow-Modelle in ein BigQuery ML-Dataset importieren und damit Vorhersagen mithilfe einer SQL-Abfrage treffen. Sie können TensorFlow-Modelle mit diesen Oberflächen importieren:
- Die Google Cloud Console
- Der Befehl
bq query
im bq-Befehlszeilentool - BigQuery API
Weitere Informationen zum Importieren von TensorFlow-Modellen in BigQuery ML, einschließlich Format- und Speicheranforderungen, finden Sie unter Anweisung CREATE
MODEL
zum Importieren von TensorFlow-Modellen.
TensorFlow-Modelle importieren
So importieren Sie TensorFlow-Modelle in ein Dataset:
Console
Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.
Geben Sie im Abfrageeditor die Anweisung
CREATE MODEL
etwa so ein:CREATE OR REPLACE MODEL `example_dataset.imported_tf_model` OPTIONS (MODEL_TYPE='TENSORFLOW', MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')
Mit der vorherigen Abfrage wird ein Modell aus
gs://cloud-training-demos/txtclass/export/exporter/1549825580/*
als BigQuery ML-Modell mit dem Namenimported_tf_model
importiert. Der Cloud Storage-URI endet mit einem Platzhalterzeichen (*
), sodass BigQuery ML auch alle mit dem Modell verknüpften Elemente importiert. Das importierte Modell ist ein TensorFlow-Textklassifizierungsmodell, das vorhersagt, auf welcher Website ein bestimmter Artikeltitel veröffentlicht wurde.Ihr neues Modell sollte jetzt im Feld Ressourcen angezeigt werden. Wenn Sie die einzelnen Datasets in einem Projekt maximieren, werden die Modelle zusammen mit den anderen BigQuery-Ressourcen in den Datasets aufgelistet. Modelle sind am Modellsymbol zu erkennen.
Wenn Sie das neue Modell im Feld Ressourcen auswählen, werden Informationen zum Modell unter dem Abfrageeditor angezeigt.
bq
Führen Sie zum Importieren eines TensorFlow-Modells aus Cloud Storage eine Batchabfrage aus. Dazu nutzen Sie einen Befehl wie den folgenden:
bq query \
--use_legacy_sql=false \
"CREATE MODEL
`mydataset.mymodel`
OPTIONS
(MODEL_TYPE='TENSORFLOW',
MODEL_PATH='gs://bucket/path/to/saved_model/*')"
Beispiel:
bq query --use_legacy_sql=false \
"CREATE OR REPLACE MODEL
`example_dataset.imported_tf_model`
OPTIONS
(MODEL_TYPE='TENSORFLOW',
MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')"
Nach dem Import sollte das Modell in der Ausgabe von bq ls [dataset_name]
angezeigt werden:
$ bq ls example_dataset
tableId Type Labels Time Partitioning
------------------- ------- -------- -------------------
imported_tf_model MODEL
API
Fügen Sie einen neuen Job ein und geben Sie das Attribut jobs#configuration.query wie in diesem Anfragetext an:
{
"query": "CREATE MODEL `project_id:mydataset.mymodel` OPTIONS(MODEL_TYPE='TENSORFLOW' MODEL_PATH='gs://bucket/path/to/saved_model/*')"
}
BigQuery DataFrames
Bevor Sie dieses Beispiel ausprobieren, folgen Sie den Schritten zur Einrichtung von BigQuery DataFrames in der BigQuery-Kurzanleitung: BigQuery DataFrames verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu BigQuery DataFrames.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Importieren Sie das Modell mit dem TensorFlowModel
-Objekt.
Vorhersagen mit importierten TensorFlow-Modellen erstellen
Führen Sie folgende Schritte aus, um Vorhersagen mit importierten TensorFlow-Modellen zu treffen. In folgenden Beispielen wird davon ausgegangen, dass Sie das TensorFlow-Modell wie im vorherigen Beispiel importiert haben.
Console
Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.
Geben Sie im Abfrageeditor mit
ML.PREDICT
eine Abfrage wie folgende ein.SELECT * FROM ML.PREDICT(MODEL
example_dataset.imported_tf_model
, ( SELECT title AS input FROMbigquery-public-data.hacker_news.full
) )Die vorherige Abfrage nutzt das Modell namens
imported_tf_model
im Datasetexample_dataset
im aktuellen Projekt, um Vorhersagen auf Basis der Eingabedaten in der öffentlichen Tabellefull
des Datasetshacker_news
im Projektbigquery-public-data
zu treffen. In diesem Fall gibt die Funktionserving_input_fn
des TensorFlow-Modells an, dass das Modell einen einzelnen Eingabestring mit dem Nameninput
erwartet. Entsprechend weist die Unterabfrage der Spalte in der AnweisungSELECT
der Unterabfrage den Aliasinput
zu.Diese Abfrage gibt Ergebnisse wie unten gezeigt aus. In diesem Beispiel gibt das Modell die Spalte
dense_1
aus, die ein Array von Wahrscheinlichkeitswerten enthält, sowie eine Spalteinput
, die die entsprechenden Stringwerte aus der Eingabetabelle enthält. Jeder Elementwert des Arrays stellt die Wahrscheinlichkeit dar, dass der entsprechende Eingabestring ein Artikeltitel aus einer bestimmten Publikation ist.
bq
Geben Sie einen Befehl wie den folgenden unter Nutzung des importierten TensorFlow-Modells my_model
ein, um Vorhersagen aus Eingabedaten der Tabelle input_data
zu treffen:
bq query \
--use_legacy_sql=false \
'SELECT *
FROM ML.PREDICT(
MODEL `my_project.my_dataset.my_model`,
(SELECT * FROM input_data))'
Beispiel:
bq query \
--use_legacy_sql=false \
'SELECT *
FROM ML.PREDICT(
MODEL `tensorflow_sample.imported_tf_model`,
(SELECT title AS input FROM `bigquery-public-data.hacker_news.full`))'
Dieses Beispiel gibt folgende Ergebnisse zurück:
+------------------------------------------------------------------------+----------------------------------------------------------------------------------+ | dense_1 | input | +------------------------------------------------------------------------+----------------------------------------------------------------------------------+ | ["0.6251608729362488","0.2989124357700348","0.07592673599720001"] | How Red Hat Decides Which Open Source Companies t... | | ["0.014276246540248394","0.972910463809967","0.01281337533146143"] | Ask HN: Toronto/GTA mastermind around side income for big corp. dev? | | ["0.9821603298187256","1.8601855117594823E-5","0.01782100833952427"] | Ask HN: What are good resources on strategy and decision making for your career? | | ["0.8611106276512146","0.06648492068052292","0.07240450382232666"] | Forget about promises, use harvests | +------------------------------------------------------------------------+----------------------------------------------------------------------------------+
API
Fügen Sie einen neuen Job ein und geben Sie das Attribut jobs#configuration.query wie in diesem Anfragetext an:
{
"query": "SELECT * FROM ML.PREDICT(MODEL `my_project.my_dataset.my_model`, (SELECT * FROM input_data))"
}
BigQuery DataFrames
Bevor Sie dieses Beispiel ausprobieren, folgen Sie den Schritten zur Einrichtung von BigQuery DataFrames in der BigQuery-Kurzanleitung: BigQuery DataFrames verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu BigQuery DataFrames.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Verwenden Sie die Funktion predict
, um das Remote-Modell auszuführen:
Das Ergebnis sieht etwa so aus:
Nächste Schritte
- Weitere Informationen zum Importieren von TensorFlow-Modellen finden Sie unter
CREATE MODEL
-Anweisung zum Importieren von TensorFlow-Modellen. - Einführung in BigQuery ML
- Informationen zur Verwendung von BigQuery ML finden Sie unter Modelle für maschinelles Lernen in BigQuery ML erstellen.
- Weitere Informationen zum Arbeiten mit Modellen finden Sie in folgenden Ressourcen: