Freigeben über


TensorBoard

TensorBoard ist eine Sammlung von Visualisierungstools zum Debuggen, Optimieren und Verstehen von TensorFlow, PyTorch, Hugging Face Transformers und anderen maschinellen Lernprogrammen.

Verwenden von TensorBoard

Das Starten von TensorBoard in Azure Databricks unterscheidet sich nicht vom Starten auf einem Jupyter Notebook auf Ihrem lokalen Computer.

  1. Laden Sie den %tensorboard-Magic-Befehl, und definieren Sie Ihr Protokollverzeichnis.

    %load_ext tensorboard
    experiment_log_dir = <log-directory>
    
  2. Rufen Sie den %tensorboard-Magic-Befehl auf.

    %tensorboard --logdir $experiment_log_dir
    

    Der TensorBoard-Server startet und zeigt die Benutzeroberfläche inline im Notebook an. Außerdem wird ein Link zum Öffnen von TensorBoard auf einer neuen Registerkarte angezeigt.

    Der folgende Screenshot zeigt die TensorBoard-Benutzeroberfläche, die in einem aufgefüllten Protokollverzeichnis gestartet wurde.

    TensorBoard-Benutzeroberfläche, gestartet in einem aufgefüllten Protokollverzeichnis

Sie können TensorBoard auch direkt mithilfe des TensorBoard-Notebookmoduls starten.

from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))

TensorBoard-Protokolle und -Verzeichnisse

TensorBoard visualisiert Ihre Machine Learning-Programme, indem Protokolle gelesen werden, die von TensorBoard-Rückrufen und -Funktionen in TensorBoard oder PyTorch generiert werden. Um Protokolle für andere Machine Learning-Bibliotheken zu generieren, können Sie Protokolle direkt mit TensorFlow-Dateiwritern schreiben (siehe Modul: tf.summary für TensorFlow 2.x und Unter Module: tf.compat.v1.summary für die ältere API in TensorFlow 1.x ).

Um sicherzustellen, dass Ihre Experimentprotokolle zuverlässig gespeichert werden, empfiehlt Databricks, die Protokolle in einen Cloud-Speicher zu schreiben und nicht in das kurzlebige Dateisystem des Clusters. Starten Sie TensorBoard für jedes Experiment in einem eindeutigen Verzeichnis. Für jeden Durchlauf Ihres maschinellen Lerncodes im Experiment, der Protokolle erzeugt, stellen Sie den TensorBoard-Callback oder den Dateiwriter so ein, dass er in ein Unterverzeichnis des Experimentverzeichnisses schreibt. Auf diese Weise werden die Daten in der TensorBoard-Benutzeroberfläche in Ausführungen unterteilt.

Lesen Sie die offizielle TensorBoard-Dokumentation für die ersten Schritte mit TensorBoard, um Informationen für Ihr Machine Learning-Programm zu protokollieren.

Verwalten von TensorBoard-Prozessen

Die in Azure Databricks Notebook gestarteten TensorBoard-Prozesse werden nicht beendet, wenn das Notebook getrennt oder die REPL neu gestartet wird (z. B. wenn Sie den Zustand des Notebooks löschen). Um einen TensorBoard-Prozess manuell zu beenden, senden Sie ihm mithilfe von %sh kill -15 pid ein Beendigungssignal. Unsachgemäß beendete TensorBoard-Prozesse können notebook.list() beschädigen.

Führen Sie über das TensorBoard-Notebookmodul aus, um die derzeit in Ihrem Cluster ausgeführten TensorBoard-Server mit den entsprechenden Protokollverzeichnissen und Prozess-IDs notebook.list() aufzulisten.

Bekannte Probleme

  • Die TensorBoard-Inline-Benutzeroberfläche befindet sich in einem iframe. Browsersicherheitsfeatures verhindern, dass externe Links auf der Benutzeroberfläche funktionieren, es sei denn, Sie öffnen den Link auf einer neuen Registerkarte.
  • Die Option --window_title von TensorBoard wird bei Azure Databricks überschrieben.
  • Standardmäßig durchsucht TensorBoard einen Portbereich, um einen Port zum Abhören auszuwählen. Wenn zu viele TensorBoard-Prozesse auf dem Cluster laufen, können alle Ports im Portbereich nicht mehr verfügbar sein. Sie können diese Einschränkung umgehen, indem Sie eine Portnummer mit dem --port-Argument angeben. Der angegebene Port muss zwischen 6006 und 6106 sein.
  • Damit die Downloadlinks funktionieren, müssen Sie TensorBoard auf einer Registerkarte öffnen.
  • Bei Verwendung von TensorBoard 1.15.0 ist die Registerkarte Projektor leer. Um die Projektorseite zu erreichen, können Sie als Abhilfe #projector in der URL durch data/plugin/projector/projector_binary.html ersetzen.
  • TensorBoard 2.4.0 weist ein bekanntes Problem auf, das sich bei einem Upgrade auf das TensorBoard-Rendering auswirken kann.
  • Wenn Sie TensorBoard-bezogene Daten in DBFS- oder UC-Volumes protokollieren, erhalten Sie möglicherweise eine Fehlermeldung wie No dashboards are active for the current data set. Um diesen Fehler zu überwinden, empfiehlt es sich, writer.flush() und writer.close() nach der Verwendung der writer zum Protokollieren von Daten aufzurufen. Dadurch wird sichergestellt, dass alle protokollierten Daten ordnungsgemäß geschrieben und für das Rendern von TensorBoard verfügbar sind.