Sdílet prostřednictvím


TensorBoard

TensorBoard je sada vizualizačních nástrojů pro ladění, optimalizaci a pochopení TensorFlow, PyTorch, Hugging Face Transformers a dalších programů strojového učení.

Použití TensorBoardu

Spuštění TensorBoardu v Azure Databricks se nijak neliší od jeho spuštění v poznámkovém bloku Jupyter na místním počítači.

  1. Načtěte %tensorboard příkaz magic a definujte adresář protokolu.

    %load_ext tensorboard
    experiment_log_dir = <log-directory>
    
  2. Vyvolání %tensorboard příkazu magic.

    %tensorboard --logdir $experiment_log_dir
    

    Server TensorBoard se spustí a zobrazí uživatelské rozhraní v poznámkovém bloku. Obsahuje také odkaz pro otevření TensorBoardu na nové kartě.

    Následující snímek obrazovky ukazuje uživatelské rozhraní TensorBoard spuštěné v naplněném adresáři protokolu.

    Uživatelské rozhraní TensorBoard se spustilo v naplněném adresáři protokolu

TensorBoard můžete také spustit přímo pomocí modulu poznámkového bloku TensorBoardu.

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

Adresáře a protokoly TensorBoardu

TensorBoard vizualizuje programy strojového učení čtením protokolů generovaných zpětnými voláními a funkcemi TensorBoardu v TensorBoardu nebo PyTorchu. Pokud chcete generovat protokoly pro jiné knihovny strojového učení, můžete přímo zapisovat protokoly pomocí zapisovačů souborů TensorFlow (viz Modul: tf.summary pro TensorFlow 2.x a viz Modul: tf.compat.v1.summary pro starší rozhraní API v TensorFlow 1.x).

Aby se zajistilo spolehlivé ukládání protokolů experimentů, doporučuje Databricks místo dočasného systému souborů clusteru zapisovat protokoly do cloudového úložiště. Pro každý experiment spusťte TensorBoard v jedinečném adresáři. Pro každé spuštění kódu strojového učení v experimentu, který generuje protokoly, nastavte zpětný volání TensorBoard nebo zapisovač souborů na zápis do podadresáře adresáře experimentu. Tímto způsobem jsou data v uživatelském rozhraní TensorBoard oddělená do spuštění.

Přečtěte si oficiální dokumentaci k TensorBoardu a začněte používat TensorBoard k protokolování informací pro váš program strojového učení.

Správa procesů TensorBoardu

Procesy TensorBoard spuštěné v poznámkovém bloku Azure Databricks se neukončí, když je poznámkový blok odpojený nebo se restartuje REPL (například když vymažete stav poznámkového bloku). Chcete-li ručně ukončit proces TensorBoard, odešlete ho signál ukončení pomocí %sh kill -15 pid. Nesprávně zabité procesy TensorBoard mohou poškodit notebook.list().

Pokud chcete zobrazit seznam serverů TensorBoard aktuálně spuštěných v clusteru s odpovídajícími adresáři protokolů a ID procesů, spusťte notebook.list() ho z modulu poznámkového bloku TensorBoard.

Známé problémy

  • Vložené uživatelské rozhraní TensorBoardu je uvnitř prvku iframe. Funkce zabezpečení prohlížeče brání fungování externích odkazů v uživatelském rozhraní, pokud odkaz neotevřete na nové kartě.
  • Možnost --window_title TensorBoardu se přepíše v Azure Databricks.
  • Ve výchozím nastavení TensorBoard prohledá rozsah portů a vybere port, který se má naslouchat. Pokud v clusteru běží příliš mnoho procesů TensorBoard, nemusí být všechny porty v rozsahu portů dostupné. Toto omezení můžete obejít zadáním čísla portu s argumentem --port . Zadaný port by měl být mezi 6006 a 6106.
  • Aby odkazy ke stažení fungovaly, je nutné otevřít TensorBoard na kartě.
  • Při použití TensorBoardu 1.15.0 je karta Projektor prázdná. Alternativním řešením je navštívit stránku projektoru přímo, kterou můžete nahradit #projector adresou URL data/plugin/projector/projector_binary.html.
  • TensorBoard 2.4.0 má známý problém , který může mít vliv na vykreslování TensorBoardu při upgradu.
  • Pokud protokolujete data související s TensorBoardem do svazků DBFS nebo UC, může se zobrazit chyba typu No dashboards are active for the current data set. Chcete-li tuto chybu překonat, je vhodné volat writer.flush() a writer.close() po použití writer protokolu dat. Tím zajistíte, že se všechna protokolovaná data správně zapisují a jsou k dispozici pro vykreslení TensorBoardu.