Найти тему
Pavel Zloi

Обзор UI для отображения процесса обучения нейросетей

Оглавление

Всем привет! Задался на днях вопросом про какой-нибудь UI где можно было бы посмотреть прогресс обучения нейросетей. Изначально хотел написать небольшую заметку для Telegram-канала, но слегка увлёкся и получилась целая публикация для блога.

PixieLang

Прежде всего хочу рассказать про решение которое предложил блогер foo52ru ТехноШаман, собственно именно оно и навело меня на мысль о поиске подобных решений.

Так вот, четыре года назад ТехноШаман для своих проектов использовал проект PixieLang, данный проект интересен тем что использует синтаксис похожий на Python, но со слега урезанным функционалом и в первую очередь ориентирован на создание 2D-игр в стиле PixelArt (эдакий ЯП для создания игровых движков).

Исходные коды приложения о котором говорил ТехноШаман в своём видеоролике можно найти тут.

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

ENNUI

-2

Следующее решение, которое мне понравилось своей наглядностью - это проект MIT под названием ENNUI, при помощи данного UI можно очень легко и просто собрать из блоков простую нейросеть, выбрать нужные слои, добавить активаторы, выбрать один из доступных датасетов и запустить обучение.

Пока обучение выполняется можно попереключаться между табами интерфейса и посмотреть различную статистическую информацию. Затем можно экспортировать код полученной нейросети в формате Python и использовать уже локально.

Данный проект рассчитан на совсем начинающих специалистов и очень удобен своей наглядностью.

TensorFlow JS

-3

Ещё мне приглянулась библиотека, которая называется TensorFlow JS (небольшой туториал тут), как можно понять из названия это обёртка на JavaScript которая работает поверх NodeJS и обращается напрямую к библиотеке TensorFlow установленной локально в системе.

Данное решение позволит создавать системы обучения нейронных сетей с обратной связью, делать визуализацию и упростить процесс связывания обученной нейросети с приложением на JavaScript (а если связать её с чем-то типа вот этого то будет вообще красота).

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

TensorBoard

Источник: http://edwardlib.org/tutorials/tensorboard
Источник: http://edwardlib.org/tutorials/tensorboard

Пошёл копать дальше и нашёл решение под названием TensorBoard оно заточено под совместную работу с TensorFlow, представляет из себя веб-приложение для визуализации и отладки нейросетевых моделей.

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

Из интересных особенностей данного проекта это возможность использовать данную систему не только в паре с TensorFlow, но ещё и с PyTorch.

Keras Visualization Toolkit

Источник: https://stackoverflow.com/questions/70237901/how-to-visualize-a-keras-neural-network-with-trained-weights
Источник: https://stackoverflow.com/questions/70237901/how-to-visualize-a-keras-neural-network-with-trained-weights

Поехали дальше, есть ещё один интересный проект, называется он Keras Visualization Toolkit. Если в двух словах то это библиотека, разработанная для Keras (фреймворк на котором написан TensorFlow), позволяющая легко визуализировать и анализировать процесс обучения нейронных сетей. Она предоставляет различные инструменты для отслеживания и отображения метрик, графиков и весов модели.

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

Visdom

-6

Покопавшись ещё немного наткнулся на проект Visdom, по сути своей это Python библиотека, разработанная сотрудниками Facebook, которая предоставляет возможность визуализации процесса обучения на платформе Jupyter Notebook или локальном сервере. Она позволяет визуализировать графики, изображения, видео, текст и другие типы данных.

Plotly

Ну и напоследок ещё один проект, который мне тоже очень понравился, называется он Plotly, по хорошему этот проект не имеет отношения к нейросетям, он заточен под рендер графиков по некоторым входным данным, однако, мы всё равно можен интегрироваться с данной системой через библиотеку plotly.py

По логике своей он очень похож на metaplot, но дополнительно умеет экспортировать полученные графики в формате JSON после чего импортировать например через plotly.js и отобразить интерактивный график в браузере.

Про этот проект была отличная публикация на Хабр.

Заключение

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

Видно, что существует множество уникальных и полезных инструментов, которые могут помочь вам в управлении, визуализации и обучении ваших нейросетей. Некоторые из них предназначены для конкретных целей, таких как TensorFlow JS для создания систем обучения нейронных сетей с обратной связью, или ENNUI, разработанный специально для новичков в области нейросетей. Другие, такие как Keras Visualization Toolkit или Visdom, предлагают более обширные возможности визуализации и анализа процесса обучения.

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

Также приглашаю вас в мой Telegram-канал, где я регулярно публикую интересные материалы и полезные ссылки, связанные с миром нейросетей и программирования в целом.

Благодарю за внимание и до новых встреч в следующих статьях!