TensorBoard
TensorBoard to zestaw narzędzi do wizualizacji do debugowania, optymalizacji i zrozumienia bibliotek TensorFlow, PyTorch, Hugging Face Transformers i innych programów uczenia maszynowego.
Korzystanie z narzędzia TensorBoard
Uruchamianie narzędzia TensorBoard w usłudze Azure Databricks nie różni się od uruchamiania go w notesie Jupyter na komputerze lokalnym.
Załaduj polecenie magic i zdefiniuj
%tensorboard
katalog dziennika.%load_ext tensorboard experiment_log_dir = <log-directory>
Wywołaj
%tensorboard
polecenie magic.%tensorboard --logdir $experiment_log_dir
Serwer TensorBoard jest uruchamiany i wyświetla wbudowany interfejs użytkownika w notesie. Udostępnia również link umożliwiający otwarcie narzędzia TensorBoard na nowej karcie.
Poniższy zrzut ekranu przedstawia interfejs użytkownika narzędzia TensorBoard uruchomiony w wypełnionym katalogu dziennika.
Możesz również uruchomić program TensorBoard bezpośrednio przy użyciu modułu notesu tensorBoard.
from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))
Dzienniki i katalogi programu TensorBoard
TensorBoard wizualizuje programy uczenia maszynowego, odczytując dzienniki generowane przez wywołania zwrotne i funkcje TensorBoard w narzędziu TensorBoard lub PyTorch. Aby wygenerować dzienniki dla innych bibliotek uczenia maszynowego, możesz bezpośrednio pisać dzienniki przy użyciu składników zapisywania plików TensorFlow (zobacz Moduł: tf.summary dla biblioteki TensorFlow 2.x i zobacz Moduł: tf.compat.v1.summary dla starszego interfejsu API w bibliotece TensorFlow 1.x).
Aby upewnić się, że dzienniki eksperymentów są niezawodnie przechowywane, usługa Databricks zaleca zapisywanie dzienników w magazynie w chmurze, a nie w efemerycznym systemie plików klastra. Dla każdego eksperymentu uruchom narzędzie TensorBoard w unikatowym katalogu. Dla każdego przebiegu kodu uczenia maszynowego w eksperymencie, który generuje dzienniki, ustaw wywołanie zwrotne TensorBoard lub moduł zapisywania plików, aby zapisać w podkatalogu katalogu eksperymentu. Dzięki temu dane w interfejsie użytkownika programu TensorBoard są rozdzielane na uruchomienia.
Przeczytaj oficjalną dokumentację programu TensorBoard , aby rozpocząć korzystanie z narzędzia TensorBoard w celu rejestrowania informacji dotyczących programu uczenia maszynowego.
Zarządzanie procesami programu TensorBoard
Procesy TensorBoard uruchomione w notesie usługi Azure Databricks nie są przerywane po odłączeniu notesu lub ponownym uruchomieniu środowiska REPL (na przykład w przypadku wyczyszczenia stanu notesu). Aby ręcznie zabić proces TensorBoard, wyślij do niego sygnał zakończenia przy użyciu polecenia %sh kill -15 pid
. Nieprawidłowo zabite procesy TensorBoard mogą uszkodzić notebook.list()
.
Aby wyświetlić listę serwerów TensorBoard aktualnie uruchomionych w klastrze z odpowiednimi katalogami dzienników i identyfikatorami procesów, uruchom polecenie notebook.list()
z modułu notesu TensorBoard.
Znane problemy
- Wbudowany interfejs użytkownika narzędzia TensorBoard znajduje się wewnątrz elementu iframe. Funkcje zabezpieczeń przeglądarki uniemożliwiają działanie linków zewnętrznych w interfejsie użytkownika, chyba że link zostanie otwarty na nowej karcie.
- Opcja
--window_title
TensorBoard jest zastępowana w usłudze Azure Databricks. - Domyślnie tensorBoard skanuje zakres portów w celu wybrania portu do nasłuchiwania. Jeśli w klastrze jest uruchomionych zbyt wiele procesów TensorBoard, wszystkie porty w zakresie portów mogą być niedostępne. To ograniczenie można obejść, określając numer portu z argumentem
--port
. Określony port powinien należeć do zakresu od 6006 do 6106. - Aby pobrać linki do pracy, należy otworzyć tensorBoard na karcie.
- W przypadku korzystania z narzędzia TensorBoard 1.15.0 karta Projektor jest pusta. Aby obejść ten problem, aby bezpośrednio odwiedzić stronę projektora, możesz zastąpić
#projector
adres URL ciągiemdata/plugin/projector/projector_binary.html
. - TensorBoard 2.4.0 ma znany problem , który może mieć wpływ na renderowanie narzędzia TensorBoard w przypadku uaktualnienia.