Интуитивно понятный способ создания моделей глубокого обучения и обмена ими.

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

Представляем Flowpoints

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

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

Соответствующий код Python можно просмотреть в браузере или скопировать в буфер обмена одним щелчком мыши.

В одном меню вы можете выбрать, хотите ли вы, чтобы код использовал TensorFlow или PyTorch.

… И вы можете легко создавать ссылки для обмена на свои модели!

Быстрый пример

Так что давай попробуем! Для этого примера мы создадим следующую модель, которая, в свою очередь, будет обучена на наборе данных CIFAR10.

Для тех, кто любит десерт в первую очередь: вот готовая модель, вот колаб для этого примера.

Во-первых: создайте новую модель

Начните с перехода на flowpoints.io. На вашем экране должен появиться довольно пустой пользовательский интерфейс.

На боковой панели щелкните раскрывающееся меню «Библиотека» и выберите «TensorFlow». Теперь код для нашей модели будет использовать TensorFlow вместо PyTorch.

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

Во-вторых: добавьте в модель несколько потоковых точек

Добавьте некоторые операции к вашей модели. Нажмите синюю кнопку +, чтобы создать одну новую точку потока. Первая появившаяся точка потока должна сказать «Вход». Эта точка будет использоваться, чтобы сообщить модели форму нашего ввода. Мы вернемся к этому.

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

Если соединение отсутствует: щелкните точку потока, из которой вы хотите получить выходные данные, удерживайте нажатой клавишу Shift и щелкните точку потока, к которой вы хотите подключиться. Соединение должно появиться немедленно. Чтобы удалить соединение, просто повторите эту процедуру.

Создайте столько точек потока, сколько захотите, и расположите их так, как вам удобно. Или просто скопируйте модель с картинки.

В-третьих: изменение типов слоев

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

Щелкните первую точку потока («Вход») и выберите вкладку «Точка потока» на боковой панели. Убедитесь, что поле «n_dims» установлено на 3, а «размеры» - 32, 32, 3. Это размеры изображений в наборе данных CIFAR10.

Щелкните следующую точку потока (ту, которая подключена к входу), и щелкните область «Тип слоя». Здесь вы измените работу этой точки потока. Начните с удаления всего текста в этом поле и введите «Конв.». Должен появиться список операций, причем Conv2d находится довольно близко к началу. Выберите эту операцию.

Крошечные оранжевые и синие значки показывают, в какой библиотеке доступен рассматриваемый слой.

Параметры точки потока должны измениться, чтобы соответствовать параметрам операции Conv2D в TensorFlow.

Установите все параметры на что-нибудь, что имеет смысл (вы можете использовать в качестве примера мою модель).

Повторите этот шаг для всех точек потока, изменив их типы слоев и параметры, чтобы они имели смысл.

Четвертое: взгляните на код!

Щелкните вкладку «Код» на боковой панели, чтобы отобразить код для вашей текущей модели. Это должно выглядеть примерно так:

Весь код выглядит так:

Готово!

Чтобы поделиться своей работой или сохранить ее на будущее: нажмите кнопку обмена ссылкой в ​​небольшой стопке кнопок в нижнем левом углу экрана. Появится диалоговое окно с запросом пароля. Это можно использовать для защиты вашей модели. Если вы хотите создать общедоступную ссылку (как я сделал в этом примере), просто оставьте поле пароля пустым.

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

Спасибо за внимание!

Не стесняйтесь делиться любыми отзывами, открывать новые проблемы, если вы обнаружите ошибки (код с открытым исходным кодом), или добавлять функции и исправления самостоятельно!

Вот ссылка на репо!