arrow_back

TensorFlow: Qwik Start

Anmelden Teilnehmen
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

TensorFlow: Qwik Start

Lab 45 Minuten universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

GSP637

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Übersicht

In diesem Lab lernen Sie die „Hello World“-Grundlagen des Machine Learnings kennen. Anstatt explizite Regeln in einer Sprache wie Java oder C++ zu programmieren, erstellen Sie ein System, das anhand von Daten dafür trainiert wird, die Regeln abzuleiten, die für eine Beziehung zwischen Zahlen gelten.

Lernziele

Aufgaben in diesem Lab:

  • Entwicklungsumgebung im Jupyter-Notebook einrichten
  • Machine-Learning-Modell entwerfen
  • Neuronales Netzwerk trainieren
  • Modell testen

Einrichtung und Anforderungen

Vor dem Klick auf „Start Lab“ (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Wenn Sie über ein persönliches Google Cloud-Konto oder -Projekt verfügen, verwenden Sie es nicht für dieses Lab. So werden zusätzliche Kosten für Ihr Konto vermieden.

Einführung

Nehmen wir an, Sie entwickeln ein System zum Erkennen sportlicher Aktivitäten für Fitness-Tracker. Sie haben Zugriff auf die Geschwindigkeit, mit der sich eine Person bewegt, und versuchen, daraus mithilfe einer Bedingung die Aktivität abzuleiten:

if(speed<4){ status=WALKING; }
  • Mit einer weiteren Bedingung könnten Sie dies um die Aktivität Laufen erweitern:
if(speed<4){ status=WALKING; } else { status=RUNNING; }
  • Mit einer anderen Bedingung könnten Sie auch Radfahren erkennen:
if(speed<4){ status=WALKING; } else if(speed<12){ status=RUNNING; } else { status=BIKING; }
  • Aber was würde passieren, wenn Sie eine Aktivität wie Golf einbeziehen wollten? Wie sich hierfür eine Regel erstellen ließe, ist schon weniger offensichtlich.
// Now what?

Es ist sehr schwierig, mit Code ein Programm zu schreiben, mit dem sich Golf als Aktivität erkennen lässt.

Was könnten Sie tun? Sie könnten das Problem mithilfe von Machine Learning lösen.

Was ist Machine Learning?

Im vorherigen Abschnitt sind Sie auf eine Herausforderung gestoßen, als Sie herausfinden wollten, welche sportlichen Aktivitäten ein Nutzer betreibt. Die Möglichkeiten von Code sind begrenzt, da Bedingungen äußerst komplex sein müssen, um eine Aktivität wie Golf zu erkennen.

Das folgende Diagramm zeigt die Entwicklung von Anwendungen auf herkömmliche Art und Weise:

Diagramm, in dem für die herkömmliche Programmierung Regeln und Daten als Eingabe und Antworten als Ausgabe dargestellt werden

Regeln werden in einer Programmiersprache ausgedrückt. Diese arbeiten mit Daten und Ihr Programm liefert Antworten. Bei der Aktivitätserkennung arbeiten die Regeln (der Code, den Sie zur Definition der Aktivitätsarten geschrieben haben) mit den Daten (die Geschwindigkeit, mit der sich die Person bewegt), um eine Antwort zu finden: den Rückgabewert der Funktion zum Ermitteln des Aktivitätsstatus des Nutzers (ob dieser spazieren geht, läuft, mit dem Rad fährt usw.).

Das Erkennen einer Aktivität mithilfe von Machine Learning läuft sehr ähnlich ab. Nur die Ein- und Ausgaben sind anders:

Diagramm, in dem für Machine Learning Antworten und Daten als Eingabe und Regeln als Ausgabe dargestellt werden

Anstatt Regeln zu definieren und in einer Programmiersprache zu formulieren, geben Sie die Antworten (meist als Labels bezeichnet) sowie die Daten ein. Die Maschine leitet daraus die Regeln ab, die die Beziehung zwischen den Antworten und den Daten definieren. In einem ML-Kontext könnte das Aktivitätserkennungsszenario beispielsweise so aussehen:

Darstellung der vier Labels Gehen, Laufen, Radfahren und Golf als Einsen und Nullen

Sie erfassen eine große Menge an Daten und versehen diese mit Labels, die besagen: „So sieht Gehen aus“ oder „So sieht Laufen aus“. Aus diesen Daten kann der Computer die Regeln ableiten, die festlegen, nach welchem Muster eine bestimmte Aktivität abläuft.

Diese Variante ist aber nicht nur eine Alternative zum Programmieren. Hier eröffnen sich auch neue Szenarien, zum Beispiel das Erkennen der Aktivität Golf, was mit dem herkömmlichen, auf Regeln basierenden Programmieransatz nicht möglich war.

Beim herkömmlichen Programmieren wird der Code zu einem Binärprogramm kompiliert, das üblicherweise als Programm bezeichnet wird. Beim Machine Learning erstellen Sie aus den Daten und Labels ein sogenanntes Modell.

Kehren wir noch einmal zu diesem Diagramm zurück:

Diagramm, in dem für Machine Learning Antworten und Daten als Eingabe und Regeln als Ausgabe dargestellt werden

Das Ergebnis ist ein Modell, das zur Laufzeit so verwendet wird:

Diagramm, in dem Daten als Eingabe für ein Modell und Vorhersagen als Ausgabe dargestellt werden

Sie übergeben Daten an das Modell und dieses gibt anhand der Regeln, die es während des Trainings abgeleitet hat, eine Vorhersage aus, zum Beispiel „Diese Daten deuten auf Gehen hin“ oder „Diese Daten deuten auf Radfahren hin“.

In diesem Lab erstellen Sie ein sehr einfaches „Hello World“-Modell aus Bausteinen, die in jedem Machine-Learning-Szenario zum Einsatz kommen können.

Aufgabe 1: Notebook in Vertex AI Workbench öffnen

  1. Klicken Sie in der Google Cloud Console im Navigationsmenü auf Vertex AI > Workbench.

  2. Suchen Sie die Instanz und klicken Sie auf JupyterLab öffnen.

Die JupyterLab-Oberfläche für Ihre Workbench-Instanz wird in einem neuen Browsertab geöffnet.

TensorFlow und zusätzliche Pakete installieren

  1. Wählen Sie im Launcher-Menü unter Sonstiges die Option Terminal aus.

  2. Prüfen Sie, ob die Python-Umgebung schon konfiguriert ist. Kopieren Sie den folgenden Befehl und fügen Sie ihn in das Terminal ein:

python --version

Beispielausgabe:

Python 3.10.14
  1. Führen Sie den folgenden Befehl aus, um das TensorFlow-Paket zu installieren:
pip3 install tensorflow
  1. Führen Sie im Terminal den folgenden Befehl aus, um ein Upgrade von pip3 durchzuführen:
pip3 install --upgrade pip

Pylint ist ein Tool, mit dem sich Fehler in Python-Code finden lassen. Es kennzeichnet syntaktische und stilistische Probleme in Python-Quellcode.

  1. Führen Sie den folgenden Befehl aus, um das pylint-Paket zu installieren:
pip install -U pylint --user
  1. Installieren Sie die für das Lab erforderlichen Pakete in der Datei requirements.txt:
pip install -r requirements.txt

Damit haben Sie die Umgebung eingerichtet.

Aufgabe 2: Erstes Machine-Learning-Modell erstellen

Sehen Sie sich die folgenden Zahlengruppen an. Erkennen Sie eine Beziehung zwischen ihnen?

X:

-1

0

1

2

3

4

Y:

-2

1

4

7

10

13

Wenn Sie die Zahlenfolge von links nach rechts lesen, stellen Sie fest, dass sich der X-Wert immer um 1 erhöht und der zugehörige Y-Wert um 3. Die Beziehung sollte also Y = 3X plus oder minus ein Wert sein.

Wenn Sie sich die Zahl 0 bei X ansehen, stellen Sie fest, dass der zugehörige Y-Wert 1 ist.

Aus diesen beiden Beobachtungen lässt sich ableiten, dass die Beziehung Y = 3X + 1 lautet.

Auf sehr ähnliche Weise würden Sie anhand von Code ein Modell, ein sogenanntes neuronales Netzwerk, trainieren, um Muster in Daten zu erkennen.

Sie nutzen Daten, um das neuronale Netzwerk zu trainieren. Wenn Sie ihm eine Reihe von X- und Y-Werten zur Verfügung stellen, ist es in der Regel in der Lage, die Beziehung zwischen diesen zu erkennen.

Neues Notebook erstellen und Bibliotheken importieren

  1. Klicken Sie links in der Workbench auf das +-Zeichen, um einen neuen Launcher zu öffnen.

  2. Wählen Sie im Launcher-Menü unter Notebook die Option Python3 aus.

Neue Notebookdatei

Ihnen wird ein neues Jupyter-Notebook angezeigt. Weitere Informationen zum Verwenden von Jupyter-Notebooks finden Sie in der Jupyter Notebook-Dokumentation.

  1. Importieren und konfigurieren Sie logging und google-cloud-logging für Cloud Logging. Fügen Sie in der ersten Zelle den folgenden Code hinzu:
import logging import google.cloud.logging as cloud_logging from google.cloud.logging.handlers import CloudLoggingHandler from google.cloud.logging_v2.handlers import setup_logging cloud_logger = logging.getLogger('cloudLogger') cloud_logger.setLevel(logging.INFO) cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client())) cloud_logger.addHandler(logging.StreamHandler())
  1. Importieren Sie tensorflow zum Trainieren und Evaluieren des Modells. Legen Sie als einfach zu merkende Bezeichnung tf fest. Fügen Sie in der ersten Zelle den folgenden Code hinzu:
# Import TensorFlow import tensorflow as tf
  1. Importieren Sie numpy, um die Daten zur Fehlerbehebung zu parsen. Legen Sie als einfach zu merkende Bezeichnung np fest. Fügen Sie in der ersten Zelle den folgenden Code hinzu:
# Import numpy import numpy as np
  1. Klicken Sie auf Ausführen oder drücken Sie Umschalttaste + Eingabetaste, um die Zelle auszuführen.

  2. Speichern Sie das Notebook. Klicken Sie dazu auf Datei > Speichern. Geben Sie der Datei den Namen model.ipynb und klicken Sie auf Ok.

Hinweis: Etwaige Warnungen können Sie ignorieren.

Daten vorbereiten

Als Nächstes bereiten Sie die Daten vor, mit denen das Modell trainiert wird. In diesem Lab verwenden Sie die bereits bekannten sechs X- und Y-Werte:

X:

-1

0

1

2

3

4

Y:

-2

1

4

7

10

13

Wie Sie sehen, ist die Beziehung zwischen den X- und Y-Werten Y = 3X + 1. Wenn X = 1, ist Y = 4 usw.

Die Python-Bibliothek numpy enthält zahlreiche Datenstrukturen vom Array-Typ, die eine Standardmöglichkeit zur Übergabe von Daten sind. Geben Sie die Werte in numpy mit np.array([]) als Array an, um diese zu verwenden.

  1. Fügen Sie in der zweiten Zelle den folgenden Code hinzu:
xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float)

Modell entwerfen

In diesem Abschnitt entwerfen Sie das Modell mit TensorFlow.

Dazu verwenden Sie einen Machine-Learning-Algorithmus, der als neuronales Netzwerk bezeichnet wird, um das Modell zu trainieren. Sie erstellen ein ganz einfaches neuronales Netzwerk. Es hat eine Ebene und diese hat ein Neuron. Als Eingabe empfängt das neuronale Netzwerk immer nur einen Wert. Daher muss die Eingabe die Form [1] haben.

Hinweis: In den nächsten Labs dieser Aufgabenreihe erfahren Sie mehr über neuronale Netzwerke.
  1. Fügen Sie in der zweiten Zelle den folgenden Code hinzu:
model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])])

Modell kompilieren

Als Nächstes schreiben Sie den Code zum Kompilieren des neuronalen Netzwerks. Dabei müssen Sie zwei Funktionen angeben: loss und optimizer.

Wenn Sie sich mit der für Machine Learning notwendigen Mathematik gut auskennen, können Sie diese hier zum Einsatz bringen, aber tf.keras kapselt sie praktischerweise für Sie in Funktionen.

  • Sie wissen bereits, dass die Beziehung zwischen den Zahlen y=3x+1 lautet.

  • Wenn der Computer versucht, diese Beziehung zu lernen, stellt er eine Vermutung an, zum Beispiel y=10x+10. Mithilfe der loss-Funktion werden die vermuteten Antworten mit den bekannten richtigen Antworten abgeglichen und es wird gemessen, wie gut oder schlecht die Vermutung war.

Hinweis: Informationen zu verschiedenen Arten von loss-Funktionen in tf.keras finden Sie in der Dokumentation unter Module: tf.keras.losses.
  • Als Nächstes nutzt das Modell die optimizer-Funktion für eine weitere Vermutung. So versucht es, anhand des Ergebnisses der loss-Funktion den Verlust zu minimieren. Die neue Vermutung könnte y=5x+5 lauten. Damit liegt das Modell immer noch ziemlich daneben, aber näher am korrekten Ergebnis, der Verlust ist also geringer.
Hinweis: Informationen zu verschiedenen Arten von optimizer-Funktionen in tf.keras finden Sie in der Dokumentation unter Module: tf.keras.optimizers.
  • Das Modell wiederholt diesen Vorgang in der von Ihnen vorgegebenen Anzahl von Epochen.
  1. Fügen Sie in der zweiten Zelle den folgenden Code hinzu:
model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError())

Mit diesem Code-Snippet weisen Sie das Modell an, mean_squared_error für die loss-Funktion und stochastic gradient descent (sgd) für die optimizer-Funktion zu verwenden. Auch wenn Sie die dahinter steckende Mathematik noch nicht verstehen, werden Sie feststellen, dass es funktioniert.

Hinweis: Sie werden die geeigneten loss- und optimizer-Funktionen für verschiedene Szenarien noch genauer kennenlernen.

Neuronales Netzwerk trainieren

Sie verwenden model.fit, um das neuronale Netzwerk dafür zu trainieren, die Beziehung zwischen den X- und Y-Werten zu „lernen“.

Mit dieser Funktion wird das Modell in einer Schleife trainiert: Es stellt eine Vermutung auf, dann wird gemessen, wie gut oder schlecht diese ist (also der Verlust), mithilfe der optimizer-Funktion wird eine weitere Vermutung aufgestellt usw. Dieser Vorgang wird in der von Ihnen vorgegebenen Anzahl von Epochen (in diesem Lab 500) wiederholt.

  1. Fügen Sie in der zweiten Zelle den folgenden Code hinzu:
model.fit(xs, ys, epochs=500)

Durch den obigen Code wird das Modell mit model.fit eine festgelegte Anzahl von Epochen lang trainiert.

Hinweis: Informationen zu model.fit finden Sie in der Dokumentation zu tf.keras.Model im Abschnitt „fit“.

Jetzt sollte die Datei so aussehen (der Code befindet sich in zwei getrennten Zellen):

import logging import google.cloud.logging as cloud_logging from google.cloud.logging.handlers import CloudLoggingHandler from google.cloud.logging_v2.handlers import setup_logging cloud_logger = logging.getLogger('cloudLogger') cloud_logger.setLevel(logging.INFO) cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client())) cloud_logger.addHandler(logging.StreamHandler()) import tensorflow as tf import numpy as np xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float) model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])]) model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError()) model.fit(xs, ys, epochs=500)

Code ausführen

Das Script ist jetzt bereit. Führen Sie es aus, um zu sehen, was passiert.

  1. Klicken Sie auf Ausführen oder drücken Sie Umschalttaste + Eingabetaste, um die zweite Zelle im Notebook auszuführen.

  2. Sehen Sie sich die Ausgabe an. Das Script gibt den Verlust für jede Epoche aus. Ihre Ausgabe kann von der hier dargestellten abweichen.

Hinweis: Eine Zahl, deren Wert e- enthält, wird in wissenschaftlicher Schreibweise mit einem negativen Exponenten dargestellt.

Wenn Sie durch die Epochen scrollen, stellen Sie fest, dass der Verlust in den ersten paar Epochen ziemlich hoch ist, dann aber mit jedem Schritt kleiner wird. Beispiel:

Zeilen mit Epochenverlust, der schrittweise schrumpft. In der zweiten Zeile ist der Verlust 52,1992, in der neunten nur noch 9,7403

Im Laufe des Trainings wird der Verlust sehr klein:

In der 45. Zeile ist der Verlust 0,0023 und in der 54. Zeile 7,1057e-04

Am Ende des Trainings ist der Verlust extrem gering, was zeigt, dass es dem Modell sehr gut gelingt, die Beziehung zwischen den Zahlen abzuleiten:

In der 495. Zeile ist der Verlust 5,4194e-08 und in der 500. Zeile 4,8896e-08

Möglicherweise brauchen Sie nicht alle 500 Epochen. Probieren Sie es mit verschiedenen Werten. In diesem Beispiel ist der Verlust bereits nach 50 Epochen sehr klein. Diese Anzahl reicht also vermutlich.

Klicken Sie auf Fortschritt prüfen. Machine-Learning-Modelle erstellen

Modell verwenden

Sie haben jetzt ein Modell, das dafür trainiert wurde, die Beziehung zwischen X und Y zu lernen.

Mit der Methode model.predict können Sie den Y-Wert für einen X-Wert ermitteln, den das Modell während des Trainings nicht kennengelernt hat. Wenn beispielsweise X = 10 ist, welchen Wert muss dann Y haben?

  1. Fügen Sie den folgenden Code in der dritten Zelle hinzu, um eine Vorhersage zu machen:
cloud_logger.info(str(model.predict(np.array([10.0])))) Hinweis: Das Ergebnis der Vorhersage wird an cloud_logger übergeben, um zum Prüfen des Fortschritts Cloud-Logs zu erstellen.
  1. Drücken Sie Strg + S oder klicken Sie auf Datei > Speichern, um das Notebook zu speichern.

  2. Klicken Sie auf Ausführen oder drücken Sie Umschalttaste + Eingabetaste, um die dritte Zelle auszuführen.

Der Y-Wert wird nach dem Trainingslog (Epochen) aufgeführt.

Beispielausgabe:

Der Y-Wert ist 31,005917

Sie dachten wahrscheinlich Y = 31. Der tatsächliche Wert ist aber etwas höher (31,005917). Was könnte der Grund sein?

Antwort: Neuronale Netzwerke befassen sich mit Wahrscheinlichkeiten. Dieses Netzwerk hat berechnet, dass die Beziehung zwischen X und Y mit sehr hoher Wahrscheinlichkeit Y = 3X + 1 ist. Anhand von nur sechs Datenpunkten ließ sich dies aber nicht sicher sagen. Daher ist das Ergebnis für die Zahl 10 sehr nahe an 31, aber nicht unbedingt genau 31.

Dieses Muster wird Ihnen bei der Arbeit mit neuronalen Netzwerken immer wieder begegnen. Sie haben es in der Regel mit Wahrscheinlichkeiten und nicht mit Gewissheiten zu tun. Es ist ein bisschen Coding nötig, um herauszufinden, wie das Ergebnis basierend auf diesen Wahrscheinlichkeiten lautet, insbesondere wenn es um die Klassifizierung geht.

Klicken Sie auf Fortschritt prüfen. Modell verwenden

Das wars!

Sie haben das Lab erfolgreich abgeschlossen. Sie haben mit TensorFlow ein eigenes Machine-Learning-Modell erstellt, trainiert und getestet.

Weitere Informationen

Google Cloud-Schulungen und -Zertifizierungen

In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.

Anleitung zuletzt am 16. September 2024 aktualisiert

Lab zuletzt am 16. September 2024 getestet

© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail