Поделиться через


TensorBoard

TensorBoard — это набор средств визуализации для отладки, оптимизации и понимания TensorFlow, PyTorch, Hugging Face Transformers и других программ машинного обучения.

Использование TensorBoard

Запуск TensorBoard в Azure Databricks не отличается от запуска в записной книжке Jupyter на локальном компьютере.

  1. Загрузите магическую команду %tensorboard и определите каталог журналов.

    %load_ext tensorboard
    experiment_log_dir = <log-directory>
    
  2. Вызовите магическую команду %tensorboard.

    %tensorboard --logdir $experiment_log_dir
    

    Запустится сервер TensorBoard и отобразится пользовательский интерфейс, встроенный в записную книжку. Он также содержит ссылку для открытия 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.