1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/paddlepaddle-VisualDL

Клонировать/Скачать
README_CN.md 24 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 12:46 a4a139c

Введение

VisualDL — это инструмент для анализа и визуализации данных в процессе обучения нейронных сетей. Он предоставляет пользователям возможность наглядно представить изменения параметров модели, структуру модели, образцы данных, распределение многомерных данных и другие аспекты процесса обучения. Это помогает пользователям лучше понять процесс обучения и оптимизировать модель.

VisualDL предлагает широкий спектр функций визуализации, включая поддержку скалярных значений, графических структур, образцов данных (изображения, аудио, текст), гиперпараметров, гистограмм, кривых PR и ROC, а также представления многомерных данных. Кроме того, VisualDL предоставляет сервис для сохранения результатов визуализации. С помощью VDL.service можно создать ссылку и сохранить результаты визуализации для последующего использования. Для получения подробной информации о том, как использовать эти функции, обратитесь к разделу «Использование VisualDL». Если вы хотите попробовать новые функции, вы можете воспользоваться онлайн-демонстрацией системы на сайте https://www.paddlepaddle.org.cn/paddle/visualdl/demo. Проект находится в стадии активной разработки, и новые компоненты будут добавляться в ближайшее время.

Поддерживаемые браузеры:

  • Google Chrome ≥ 79;
  • Firefox ≥ 67;
  • Microsoft Edge ≥ 79;
  • Safari ≥ 11.1.

VisualDL изначально поддерживает Python. Чтобы добавить визуализацию в процесс обучения модели, достаточно добавить несколько строк кода в конфигурацию модели на Python.

Содержание

  • Основные преимущества;
  • Установка;
  • Использование;
  • Обзор функций визуализации;
  • Вклад в открытый исходный код;
  • Часто задаваемые вопросы;
  • Дополнительная информация.

Основные преимущества

  • Простота использования: API прост и понятен, что делает его лёгким в использовании. Визуализация структуры модели может быть выполнена одним щелчком мыши.
  • Богатые функции: охватывает скалярные значения, образцы данных, графические структуры, гистограммы, кривые PR и данные с пониженной размерностью.
  • Высокая совместимость: полностью поддерживает Paddle, ONNX, Caffe и другие популярные модели. Подходит для широкого круга пользователей, занимающихся анализом визуализации.
  • Полная поддержка: тесно интегрирован с платформой сервисов Paddle и другими компонентами инструментов, обеспечивая наилучший опыт использования в экосистеме Paddle.

Установка

Вы можете установить VisualDL с помощью pip или кода.

  • Использование 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.

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

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

  1. Запись журнала VisualDL предоставляет Python SDK для создания пользовательского регистратора журналов с помощью LogWriter. Интерфейс выглядит следующим образом:
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

2. Запуск панели

В приведённом примере три набора скалярных данных уже записаны в журнал. Теперь можно запустить панель 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

Запуск из Python-скрипта

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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/paddlepaddle-VisualDL.git
git@api.gitlife.ru:oschina-mirror/paddlepaddle-VisualDL.git
oschina-mirror
paddlepaddle-VisualDL
paddlepaddle-VisualDL
develop