Введение
VisualDL — это инструмент для анализа и визуализации данных в процессе обучения нейронных сетей. Он предоставляет пользователям возможность наглядно представить изменения параметров модели, структуру модели, образцы данных, распределение многомерных данных и другие аспекты процесса обучения. Это помогает пользователям лучше понять процесс обучения и оптимизировать модель.
VisualDL предлагает широкий спектр функций визуализации, включая поддержку скалярных значений, графических структур, образцов данных (изображения, аудио, текст), гиперпараметров, гистограмм, кривых PR и ROC, а также представления многомерных данных. Кроме того, VisualDL предоставляет сервис для сохранения результатов визуализации. С помощью VDL.service можно создать ссылку и сохранить результаты визуализации для последующего использования. Для получения подробной информации о том, как использовать эти функции, обратитесь к разделу «Использование VisualDL». Если вы хотите попробовать новые функции, вы можете воспользоваться онлайн-демонстрацией системы на сайте https://www.paddlepaddle.org.cn/paddle/visualdl/demo. Проект находится в стадии активной разработки, и новые компоненты будут добавляться в ближайшее время.
Поддерживаемые браузеры:
VisualDL изначально поддерживает Python. Чтобы добавить визуализацию в процесс обучения модели, достаточно добавить несколько строк кода в конфигурацию модели на Python.
Содержание
Основные преимущества
Установка
Вы можете установить VisualDL с помощью pip или кода.
python -m pip install visualdl -i https://mirror.baidu.com/pypi/simple
git clone https://github.com/PaddlePaddle/VisualDL.git
cd VisualDL
python setup.py bdist_wheel
pip install --upgrade dist/visualdl-*.whl
Обратите внимание, что начиная с 1 января 2020 года официальная поддержка Python 2 прекращена. Чтобы обеспечить совместимость кода, VisualDL теперь поддерживает только Python 3.
Использование
После записи данных, параметров и другой информации в журнал во время процесса обучения, вы можете просмотреть результаты визуализации, запустив панель.
class LogWriter(logdir=None,
max_queue=10,
flush_secs=120,
filename_suffix='',
display_name='',
file_name='',
**kwargs)
Параметр | Формат | Значение |
---|---|---|
logdir | string | Путь к файлу журнала. VisualDL создаст файл журнала в этом пути и будет записывать в него. Если не указано, по умолчанию используется runs/${CURRENT_TIME} |
max_queue | int | Максимальный размер очереди сообщений журнала. Когда очередь достигает этого размера, сообщения немедленно записываются в файл журнала |
flush_secs | int | Максимальное время кэширования сообщений журнала в очереди. Когда время достигает этого значения или когда очередь заполнена, сообщения немедленно записываются в файл журнала |
filename_suffix | string | Добавляет суффикс к имени файла журнала по умолчанию |
display_name | string | Имя пути, отображаемое после запуска панели. Если этот параметр не указан, отображается фактический путь к журналу. Вы можете указать этот параметр, чтобы скрыть длинный путь или скрыть фактический путь |
file_name | string | Задаёт имя файла журнала. Если указанное имя файла уже существует, журнал будет добавлен в существующий файл. Таким образом, вы можете использовать этот параметр для продолжения существующего файла журнала. Имя файла должно включать vdlrecords |
Пример настройки файла журнала и записи скалярных данных:
from visualdl import LogWriter
# Создаём файл журнала в ./log/scalar_test/train
with LogWriter(logdir="./log/scalar_test/train") as writer:
# Используем компонент scalar для записи скалярного значения. Все данные, которые необходимо записать, записываются в этот writer
``` ```
writer.add_scalar(tag="acc", step=1, value=0.5678)
writer.add_scalar(tag="acc", step=2, value=0.6878)
writer.add_scalar(tag="acc", step=3, value=0.9878)
# Если не использовать контекстный менеджер with, то можно выполнить следующие шаги:
"""
writer = LogWriter(logdir="./log/scalar_test/train")
writer.add_scalar(tag="acc", step=1, value=0.5678)
writer.add_scalar(tag="acc", step=2, value=0.6878)
writer.add_scalar(tag="acc", step=3, value=0.9878)
writer.close()
"""
Примечание: вызов LogWriter(logdir="./log/scalar_test/train")
создаст файл журнала в каталоге ./log/scalar_test/train
. Данные, полученные в результате одного запуска программы, должны быть записаны только в один файл журнала. Поэтому LogWriter
следует вызывать только один раз и использовать возвращённый объект LogWriter
, чтобы записывать все данные, а не создавать новый LogWriter
для каждой записи данных.
<font color=#FF0000>Пример неправильного использования:</font>
from visualdl import LogWriter
with LogWriter(logdir="./log/scalar_test/train") as writer: # Создаст файл журнала vdlrecords.xxxx1.log
writer.add_scalar(tag="acc", step=1, value=0.5678) # Данные будут записаны в ./log/scalar_test/train/vdlrecords.xxxx1.log
with LogWriter(logdir="./log/scalar_test/train") as writer: # Создаст другой файл журнала vdlrecords.xxxx2.log
writer.add_scalar(tag="acc", step=2, value=0.6878) # Данные будут записаны в другой файл ./log/scalar_test/train/vdlrecords.xxxx2.log
В приведённом примере три набора скалярных данных уже записаны в журнал. Теперь можно запустить панель VisualDL для просмотра результатов визуализации журнала. Есть два способа запуска панели:
Для запуска панели VisualDL из командной строки используйте следующую команду:
visualdl --logdir <dir_1, dir_2, ... , dir_n> --model <model_file> --host <host> --port <port> --cache-timeout <cache_timeout> --language <language> --public-path <public_path> --api-only --component_tabs <tab_name1, tab_name2, ...>
Параметр | Значение |
---|---|
--logdir | Указывает на каталог, где находятся файлы журналов. Можно указать несколько каталогов, и VisualDL будет искать подкаталоги и визуализировать все результаты экспериментов. |
--model | Указывает путь к файлу модели (не путь к папке). VisualDL визуализирует модель, указанную в этом пути. В настоящее время поддерживаются модели PaddlePaddle, ONNX, Keras, Core ML, Caffe и другие. Подробнее см. Поддерживаемые типы моделей. |
--host | IP-адрес, по умолчанию 127.0.0.1. Если вы хотите, чтобы другие компьютеры могли получить доступ к запущенной панели VisualDL, укажите этот параметр как 0.0.0.0 или ваш публичный IP-адрес. |
--port | Порт, по умолчанию 8040. |
--cache-timeout | Время кэширования для бэкэнда. При повторных запросах к одному и тому же URL в течение этого времени данные будут извлекаться из кэша. По умолчанию 20 секунд. |
--language | Язык панели VisualDL. Может быть 'en' или 'zh', по умолчанию язык браузера. |
--public-path | Путь к панели VisualDL в URL. По умолчанию '/app', что означает, что доступ осуществляется через 'http://<host>:<port>/app'. |
--api-only | Только предоставлять API. Если этот параметр установлен, VisualDL не будет предоставлять страницу, а только API-сервис. В этом случае адрес API будет 'http://<host>:<port>/<public_path>/api'; если public_path не указан, адрес по умолчанию будет 'http://<host>:<port>/api'. |
--component_tabs | Список компонентов, которые нужно отобразить. Поддерживается 15 компонентов: 'scalar', 'image', 'text', 'embeddings', 'audio', 'histogram', 'hyper_parameters', 'static_graph', 'dynamic_graph', 'pr_curve', 'roc_curve', 'profiler', 'x2paddle', 'fastdeploy_server', 'fastdeploy_client'. Если этот параметр указан, будут отображаться только указанные компоненты. Если он не указан, при указании параметра --logdir будут автоматически отображаться соответствующие компоненты в зависимости от типа данных в файле журнала. Если параметр --logdir не указан, по умолчанию отображаются 'static_graph', 'x2paddle', 'fastdeploy_server' и 'fastdeploy_client'. |
Команда для запуска на основе созданного журнала:
visualdl --logdir ./log
VisualDL также можно запустить из Python-скрипта. Интерфейс следующий:
visualdl.server.app.run(logdir,
model="path/to/model",
host="127.0.0.1",
port=8080,
cache_timeout=20,
language=None,
public_path=None,
api_only=False,
open_browser=False)
Обратите внимание, что кроме logdir, остальные параметры являются необязательными и могут быть указаны при необходимости.
Параметры интерфейса:
Параметр | Формат | Описание |
---|---|---|
logdir | string или list[string_1, string_2, ... , string_n] | Путь к файлам журналов. VisualDL будет рекурсивно искать файлы журналов в этом каталоге и его подкаталогах и визуализировать их. Можно указать один или несколько путей. |
model | string | Путь к файлу модели. VisualDL визуализирует модель в указанном пути. В настоящее время поддерживается множество моделей, таких как PaddlePaddle, ONNX, Keras, Core ML и Caffe. Подробности см. в Поддерживаемые типы моделей. |
host | IP-адрес по умолчанию — 127.0.0.1. Чтобы другие компьютеры могли получить доступ к запущенному серверу VisualDL, установите этот параметр равным 0.0.0.0 или вашему публичному IP-адресу. | |
port | Порт по умолчанию равен 8080. | |
--- | --- | --- |
IP (IP-адрес) | string | Настройка IP-адреса. По умолчанию: 127.0.0.1. Если необходимо, чтобы другие устройства могли получить доступ к запущенной панели VisualDL, укажите здесь 0.0.0.0 или собственный публичный IP-адрес. |
Порт | int | Запуск порта сервера. По умолчанию: 8040. |
cache_timeout | int | Время кэширования данных на сервере. При повторных запросах одного и того же URL в течение этого времени данные будут извлекаться из кэша. По умолчанию: 20 секунд. |
language | string | Язык панели VisualDL. Можно указать «en» или «zh». По умолчанию используется язык браузера. |
public_path | string | Путь к панели VisualDL. По умолчанию: /app, что означает доступ по адресу http://:/app. |
api_only | boolean | Указывает, будет ли предоставляться только API. Если этот параметр установлен, VisualDL не будет отображать страницу, а будет предоставлять только услуги API. В этом случае адрес API будет http://://<public_path>/api. Если параметр public_path не установлен, адрес по умолчанию будет http://:/api. |
open_browser | boolean | Определяет, должен ли браузер автоматически открываться после запуска. Если установлено значение True, браузер откроется автоматически после запуска. Параметр api_only игнорируется, если он установлен. |
--component_tabs | string или list[string_1, string_2, ..., string_n] | Определяет компоненты, которые должны отображаться. Поддерживаемые компоненты: scalar, image, text, embeddings, audio, histogram, hyper_parameters, static_graph, dynamic_graph, pr_curve, roc_curve, profiler, x2paddle, fastdeploy_server, fastdeploy_client (всего 15 компонентов). Если этот параметр настроен, будут отображаться только указанные компоненты. Если компонент не указан, при наличии параметра --logdir компоненты будут автоматически отображаться в зависимости от типа данных в журнале. Если параметр --logdir не задан, по умолчанию отображаются следующие четыре компонента: static_graph, x2paddle, fastdeploy_server и fastdeploy_client. |
В виде гистограммы показывает данные о тензорах (вес, смещение, градиент и т. д.) в процессе обучения. Помогает разработчикам детально изучить эффект каждого слоя модели и точно настроить структуру модели.
PR-кривая
Кривая точности-полноты, которая помогает разработчикам сбалансировать точность и полноту модели и установить оптимальный порог.
ROC-кривая
Показывает изменение показателей модели при различных порогах. Площадь под кривой (AUC) интуитивно отражает производительность модели, помогая разработчикам контролировать процесс обучения модели и эффективно выбирать пороги.
Многомерные данные
Визуализирует многомерные данные с помощью методов уменьшения размерности, таких как T-SNE, PCA и UMAP. Используется для глубокого анализа взаимосвязей между данными и оптимизации алгоритмов на основе характеристик данных.
Гиперпараметры
Многогранно визуализирует взаимосвязь между гиперпараметрами и ключевыми показателями модели, что позволяет быстро определить оптимальные комбинации гиперпараметров и эффективно настраивать параметры.
Профилировщик
Помогает пользователям определять узкие места в производительности и оптимизировать их. Подробнее см. в документации.
X2Paddle
Предоставляет интерфейс для визуализации операций преобразования моделей ONNX в модели Paddle. Позволяет визуализировать структуру модели ONNX и получать структуру и параметры преобразованной модели Paddle.
FastDeployServer
Основан на FastDeploy и предоставляет функции управления библиотекой моделей, мониторинга служб и тестирования служб. Подробнее см. в документации.
FastDeployClient
Обеспечивает доступ к сервисам FastDeployServer. Предоставляет функции однократного прогнозирования и визуализации результатов. Подробнее см. в документации.
VDL.service
Сохраняет результаты визуализации в виде ссылок, облегчая управление и обмен результатами.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )