Представляем Visdom | 1

глубокое обучение

Гибкие инструменты для создания, организации и совместного использования визуализаций данных в режиме реального времени. Питон поддерживается.

  • Обзор
  • концепция
  • настраивать
  • использование
  • API
  • Сделать
  • способствовать

Обзор

Visdom стремится облегчить визуализацию (удаленных) данных с упором на поддержку научных экспериментов.

Создавайте визуализации диаграмм, изображений и текста для себя и членов вашей команды.

Программно или через пользовательский интерфейс организуйте пространство визуализации для создания панелей данных в реальном времени для изучения экспериментальных результатов или отладки экспериментального кода.

концепция

Visdom имеет простой набор характеристик, которые можно комбинировать для различных вариантов использования.

Windows

Пользовательский интерфейс начинается пустым, и вы можете заполнить его диаграммами, изображениями и текстом. Они появляются в окне, и вы можете перетаскивать их, изменять их размер и уничтожать. Эти окна находятся в "envs", и "envsСостояние ' сохраняется между сеансами. Вы можете загрузить этот пакет для Windows, который включает рисунки в формате 'svg'.

намекать: вы можете использовать коэффициент масштабирования браузера, чтобы настроить масштаб пользовательского интерфейса.

Перезвони

Реализация Python Visdom поддерживает обратные вызовы в окнах. Демонстрация показывает этот пример в виде текстового редактора. Функциональность этих обратных вызовов позволяет объекту Visdom получать и реагировать на события, происходящие во внешнем интерфейсе.

Вы можете подписаться на окно события, добавив функцию в словарь обработчиков событий идентификатора окна, на который вы хотите подписаться, вызвав обработчик и идентификатор окна.viz.register_event_handler(handler,win_id). Несколько обработчиков могут быть зарегистрированы в одном и том же окне. вы можете использовать viz.cleareventhandlers(win_id) удаляет все обработчики событий из окна. Когда для этого окна произойдет событие, будет вызван ваш обратный вызов, где словарь содержит следующее:

  • event_type: один из следующих типов событий
  • pane_data: весь сохраненный контент для этого окна, включая макет и контент.
  • eid: Текущий идентификатор среды
  • target: идентификатор окна, из которого было вызвано событие

Другие параметры определены ниже.

Теперь поддерживаются следующие события обратного вызова:

  1. Close- Срабатывает при закрытии окна. Возвращает словарь, содержащий только указанные выше поля.
  2. KeyPress- Срабатывает при нажатии клавиши. Содержит другие параметры:
    • key- Строковое представление нажатой клавиши (применяет модификаторы состояния, например, SHIFT)
    • key_code- код события javascript для нажатой клавиши (без модификаторов)
  3. PropertyUpdate- Запускается при обновлении свойства на панели свойств.
    • propertyId- позиция в списке свойств
    • value- новое значение атрибута
  4. Click- Запускается при нажатии на область изображений, имеет один параметр:
    • image_coord- Словарь с полем x и полем y для изображения, которое можно масштабировать/переводить (неткоординаты щелчка в поле координат закрывающей панели).

окрестности

ты можешь использоватьenvsРазделите пространство визуализации. По умолчанию у каждого пользователя естьmainсреда г. Новые среды можно создавать в пользовательском интерфейсе или программно. Состояние envs сохраняется длительное время. Среды способны резервировать совершенно разные области.

Вы можете получить доступ к определенной среде по адресу http://localhost.com:8097/env/main.

Если ваш сервер является хост-сервером, вы можете поделиться этим URL-адресом, чтобы другие также могли видеть вашу визуализацию.

Среды автоматически организуются иерархически по первому «_».

Выберите среду

На домашней странице вы можете использовать селектор среды для переключения между различными средами. При выборе новой среды сервер будет запрашивать графы, существующие в этой среде. Селекторы среды позволяют искать и фильтровать новые среды.

Сравнить среду

На домашней странице вы можете использовать селектор среды для сравнения различных сред. При выборе нескольких сред в флажках сервер будет запрашивать графики с одинаковым заголовком во всех средах и отображать их на одном графике. Создает дополнительную панель легенды сравнения с номерами, соответствующими каждой выбранной среде. Обновите каждый график легендой, соответствующей «x_name», где «x» — это число, соответствующее панели легенды сравнения, а «name» — исходное имя в легенде.

Уведомление: Контекстное представление сравнения не является надежным для данных с высокой пропускной способностью, поскольку сервер отвечает за создание содержимого для сравнения. Так что не сравнивайте среды, которые будут получать много обновлений на таком графике, потому что каждое обновление потребует повторной генерации сравнения. Если вам нужно сравнить два графика, которые получают много данных, позвольте им использовать одно и то же окно в одной среде.

чистая среда

Вы можете использовать кнопку ластика, чтобы удалить все текущее содержимое в среде. Это закроет окно чертежа для этой среды, но оставит пустую среду нового чертежа.

среда управления

При нажатии на значок папки откроется диалоговое окно, позволяющее разветвить или принудительно сохранить текущую среду или удалить любую существующую среду.StateИспользование этой функции полностью описано в разделе .

Файл окружения:

Ваша среда загружается при инициализации сервера, по умолчанию из $HOME/.visdom/. Пользовательские пути можно передавать в качестве аргументов командной строки. Среды можно удалить с помощью кнопки удаления или путем удаления соответствующего файла .json из каталога среды.

государство

После создания некоторых файлов визуализации состояние сохраняется. Сервер автоматически кэширует ваши визуализации — если вы перезагрузите страницу, визуализации снова появятся.

  • спасти: Вы можете сделать это вручную с помощью кнопки "Сохранить". Это сериализует состояние среды (хранится на диске в формате JSON), включая положение окна. можно сохранить программноenv.

    Это полезно для настройки более сложных визуализаций, которые имеют смысл, например, демонстраций с большим объемом данных, информационных панелей для обучения моделей или системных экспериментов. Это также упрощает их совместное использование и повторное использование.
  • Fork: если вы введете новое имя среды, при сохранении будет создана новая среда - эффективноForkпредыдущая среда.

намекать: Прежде чем приступить к редактированию,Forkсреды, чтобы изменения сохранялись отдельно.

фильтр

ты можешь использоватьfilterДинамически фильтруйте окна, содержащиеся в среде — просто укажите регулярное выражение, соответствующее заголовку окна, которое вы хотите отобразить. Это может быть полезно в случаях использования окружения с несколькими окнами, например, когда система проверяет экспериментальные результаты.

Уведомление: если текущий вид сохранен, он будет восстановлен после очистки фильтра.

Посмотреть

Представлениями можно управлять, просто перетаскивая верхнюю часть окна, но существуют и другие функции для организации представлений и сохранения общих представлений. Управление представлением полезно для сохранения и переключения между несколькими распространенными организациями Windows.

сохранить/удалить вид

Используя значок папки, откроется диалоговое окно, в котором вы можете получить представления так же, как envs. Сохранение вида сохранит положение и размеры всех окон в данной среде. Представление сохраняется в пути к файлу visdom.$HOME/.visdom/view/layouts.jsonсередина.

Уведомление: сохраненный вид является статическим, и при редактировании сохраненного вида вид копируется в «текущий» вид, который можно редактировать.

переупаковывать

Используя значок переупаковки (9 коробок), visdom попытается упаковать окна так, как это лучше всего подходит для ваших окон, сохраняя при этом порядок строк/столбцов.

Уведомление: из-за сортировки строк/столбцов иReactGridLayoutв зависимости от окончательного макета может немного отличаться от ожидаемого. Мы работаем над улучшением этого интерфейса или предлагаем альтернативы для лучшего контроля.

перезагрузить вид

Используя раскрывающееся меню «Вид», вы можете выбрать ранее сохраненное представление, чтобы восстановить положение и размер всех окон в текущей среде до положения, когда представление было сохранено в последний раз.

настраивать

Требуется Python 3

#从pip安装Python版服务器和客户端
#(稳定的版本,并非所有当前功能都受支持)
pip install visdom

#从源代码安装visdom
pip install -e .
#如果上述问题出现,你可以尝试以下方法
easy_install .

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

Запустите сервер из командной строки (вероятно, в «экране» или «tmux»):

> visdom

Теперь вы можете перейти в браузер, выбравhttp://localhost:8097или ваш собственный адрес хоста (если он указан) для доступа к Visdom.

visdomкоманда эквивалентна запускуpython -m visdom.server.

Если вышеуказанное не работает, попробуйте использовать туннель SSH на сервере, добавив следующую строку в свой локальный~/.ssh/configсередина:LocalForward 127.0.0.1:8097 127.0.0.1:8097.

параметры командной строки

Серверу могут быть предоставлены следующие опции:

  1. -port: Порт, на котором работает сервер.
  2. -hostname: имя хоста, на котором работает сервер.
  3. -base_url: URL-адрес базового сервера (по умолчанию =/).
  4. -env_path: путь к сериализованному сеансу для перегрузки.
  5. -logging_level: уровень ведения журнала (по умолчанию = INFO). Принимает стандартные текстовые и числовые значения регистрации.
  6. -readonly: флаг для запуска сервера в режиме только для чтения.
  7. -enable_login: Отметьте, чтобы установить аутентификацию сервера, требующую имя пользователя и пароль для входа в систему.
  8. -force_new_cookie: Отметьте, чтобы сбросить файл cookie безопасности, используемый сервером, что сделает недействительным текущий файл cookie входа. необходимость-enable_loginна.

при условии-enable_loginЕсли этот флажок установлен, сервер требует, чтобы пользователь использовал терминал для ввода учетных данных. Кроме того, вы можете установитьVISDOM_USE_ENV_CREDENTIALSenv переменная, затем передатьVISDOM_USERNAMEиVISDOM_PASSWORDПеременная env предоставляет ваше имя пользователя и пароль без ручного взаимодействия с терминалом.

Если вы хотите запустить из bash-скрипта или блокнота JupytervisdomСервер, эта функция очень полезна.

VISDOM_USERNAME =username
VISDOM_PASSWORD =password
VISDOM_USE_ENV_CREDENTIALS = 1 visdom -enable_login

Если файл cookie не создается, вы также можете использовать «VISDOMCOOKIE" для предоставления значения cookie или флага `-forcenew_cookie` установлен.

Пример Python
import visdom
import numpy as np
vis = visdom.Visdom()
vis.text('Hello, world!')
vis.image(np.ones((3, 10, 10)))

демо

python example/demo.py

Сводная станция блога о технологиях искусственного интеллекта Panchuang: http://docs.panchuang.net/PyTorch, официальная китайская учебная станция: http://pytorch.panchuang.net/OpenCV, официальный китайский документ: http://woshicver.com/