TensorFlow in Cloud TPU ausführen

In diesem Dokument wird die Ausführung von TensorFlow-Modellen auf Cloud TPUs erläutert. Das Trainieren von TensorFlow-Modellen auf Cloud TPU hängt von der verwendeten Cloud TPU-Architektur ab. Weitere Informationen finden Sie unter Systemarchitektur.

Wenn Sie Ihre Anwendung ausführen, generiert TensorFlow ein Berechnungsdiagramm und sendet dieses an eine TPU. Der TPU-Host kompiliert das Berechnungsdiagramm sofort und sendet die Binärdatei des Programms zur Ausführung an ein oder mehrere TPU-Geräte. Eingaben für das Modell werden häufig in Cloud Storage gespeichert. Der TPU-Host streamt die Eingabedaten für das Training an ein oder mehrere TPU-Geräte.

Cloud TPU-VMs

Bei der Cloud TPU-VM-Architektur gibt es keine Nutzer-VMs. Ihr Modell sowie Ihr Code werden in einer VM auf dem TPU-Hostcomputer ausgeführt. Sie können eine SSH-Verbindung direkt zum TPU-Host herstellen. Sie haben die Möglichkeit, Ihren TensorFlow-Client und -Dienst auf einer VM oder auf verschiedenen VMs zu erstellen. Sie können auf dem TPU-Host beliebigen Code zur Vorverarbeitung usw. ausführen.

Image

Weitere Informationen zum Trainieren eines TensorFlow-Modells auf TPU-VMs finden Sie in der Kurzanleitung zu Tensorflow auf Cloud TPU-VMs.

Cloud TPU-Knoten

Bei der Cloud TPU-Knotenarchitektur besteht ein TPU-Host aus einer Compute Engine-VM und einem TPU-Knoten. Die Compute Engine-VM führt einen TensorFlow-Client sowie Ihr Modell aus. Die VM kommuniziert über gRPC mit dem TPU-Knoten. Der TPU-Knoten führt den TensorFlow-Server sowie den XLA-Compiler aus.

Das folgende Blockdiagramm zeigt die Softwarearchitektur des Cloud TPU-Knotens. Diese besteht aus dem neuronalen Netzwerkmodell, dem TensorFlow-Client, dem TensorFlow-Server und dem XLA-Compiler.

Image

Cloud TPU TensorFlow APIs

Keras ist eine allgemeine Deep-Learning-API, die in Python geschrieben ist und auf der TensorFlow-Plattform für maschinelles Lernen ausgeführt wird. Wenn Sie ein neuronales Netzwerkmodell nutzen, das Cloud TPU verwendet, empfehlen wir die Verwendung von Keras.

TPU Estimator (Legacy)

TPU Estimators sind übergeordnete auf Estimators aufbauende APIs, die das Erstellen von Modellen für Cloud TPU vereinfachen und die maximale TPU-Leistung extrahieren. Obwohl TPU Estimator in TensorFlow 1.x weiterhin unterstützt wird, empfehlen wir stattdessen die Verwendung von Keras.

TensorFlow-Server

Ein TensorFlow-Server wird auf einem Cloud TPU-Server ausgeführt. Wenn der Server einen Berechnungsgraph vom TensorFlow-Client empfängt, führt der Server die folgenden Schritte aus:

  1. Eingaben aus Cloud Storage laden
  2. Partitionieren des Graphen in Teile, die auf einer Cloud TPU ausgeführt werden können, und in Teile, die auf einer CPU ausgeführt werden müssen
  3. Generieren von XLA-Operationen entsprechend dem Teilgraph, der in Cloud TPU ausgeführt werden soll
  4. Aufrufen des XLA-Compilers

Weitere Informationen zum Trainieren eines TensorFlow-Modells auf TPU-Knoten finden Sie in der Kurzanleitung zu Cloud TPU.