TensorBoard
TensorBoard — это набор средств визуализации для отладки, оптимизации и понимания TensorFlow, PyTorch, Hugging Face Transformers и других программ машинного обучения.
Использование TensorBoard
Запуск TensorBoard в Azure Databricks не отличается от запуска в записной книжке Jupyter на локальном компьютере.
Загрузите магическую команду
%tensorboard
и определите каталог журналов.%load_ext tensorboard experiment_log_dir = <log-directory>
Вызовите магическую команду
%tensorboard
.%tensorboard --logdir $experiment_log_dir
Запустится сервер TensorBoard и отобразится пользовательский интерфейс, встроенный в записную книжку. Он также содержит ссылку для открытия TensorBoard на новой вкладке.
На следующем снимке экрана показан пользовательский интерфейс TensorBoard, запущенный в заполненном каталоге журналов.
Вы также можете запустить TensorBoard напрямую с помощью модуля записной книжки TensorBoard.
from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))
Журналы и каталоги TensorBoard
TensorBoard визуализирует программы машинного обучения, считывая журналы, созданные с помощью обратных вызовов TensorBoard и функций в TensorBoard или PyTorch. Чтобы создать журналы для других библиотек машинного обучения, можно непосредственно записывать журналы с помощью операций записи файлов TensorFlow (см Модуль: tf.summary для TensorFlow 2.x и Модуль: tf.compat.v1.summary для более старого API в TensorFlow 1.x).
Чтобы убедиться, что журналы экспериментов надежно хранятся, Databricks рекомендует записывать журналы в облачное хранилище, а не в эфемерной файловой системе кластера. Для каждого эксперимента необходимо запустить TensorBoard в уникальном каталоге. Для каждого запуска кода машинного обучения в эксперименте, создающего журналы, задайте обратный вызов TensorBoard или средство записи файлов для записи в подкаталог каталога экспериментов. Таким образом, данные в пользовательском интерфейсе TensorBoard разделены на запуски.
Ознакомьтесь с официальной документацией по TensorBoard, чтобы приступить к использованию TensorBoard для регистрации данных о программе машинного обучения.
Управление процессами TensorBoard
Процессы TensorBoard, запущенные в записной книжке Azure Databricks, не прерываются при отсоединении записной книжки или перезапуске REPL (например, при очистке состояния записной книжки). Чтобы вручную завершить процесс TensorBoard, отправьте ему сигнал завершения работы с помощью %sh kill -15 pid
. Неправильно убитые процессы TensorBoard могут быть повреждены notebook.list()
.
Чтобы получить список серверов TensorBoard, выполняющихся в кластере, с соответствующими каталогами журналов и идентификаторами процессов, запустите notebook.list()
из модуля записной книжки TensorBoard.
Известные проблемы
- Встроенный пользовательский интерфейс TensorBoard находится внутри iframe. Функции безопасности браузера предотвращают работу внешних ссылок в пользовательском интерфейсе, пока они не будут открыты на новой вкладке.
- Параметр
--window_title
TensorBoard переопределяется в Azure Databricks. - По умолчанию TensorBoard сканирует диапазон портов, чтобы выбрать порт для прослушивания. Если в кластере выполняется слишком много процессов TensorBoard, все порты в диапазоне портов могут быть недоступны. Это ограничение можно обойти, указав номер порта с использованием аргумента
--port
. Указанный порт должен находиться в диапазоне от 6006 до 6106. - Чтобы скачать ссылки для работы, необходимо открыть TensorBoard на вкладке.
- При использовании TensorBoard 1.15.0 вкладка "Проектор" будет пуста. В качестве обходного решения для прямого перехода на страницу проектора можно заменить
#projector
в URL-адресе наdata/plugin/projector/projector_binary.html
. - В TensorBoard 2.4.0 есть известная ошибка, которая может повлиять на отрисовку TensorBoard в случае обновления.
- Если вы регистрируете данные TensorBoard, связанные с DBFS или томами UC, может возникнуть ошибка
No dashboards are active for the current data set
. Чтобы устранить эту ошибку, рекомендуется вызыватьwriter.flush()
иwriter.close()
после использованияwriter
данных журнала. Это гарантирует, что все зарегистрированные данные записываются и доступны для отрисовки TensorBoard.