Интуитивно понятный способ создания моделей глубокого обучения и обмена ими.
Я часто объясняю, как работают мои модели. Иногда я пытаюсь выразить это в терминах непрофессионала, иногда просто объясняю это как черный ящик, а иногда я рисую взаимосвязанные узлы, представляющие части нейронной сети.
Представляем Flowpoints
Flowpoints - это онлайн-инструмент с открытым исходным кодом, с помощью которого пользователи могут создавать модели глубокого обучения в виде блок-схем.
Создавая узлы, представляющие операции в нейронной сети (точки потока), соединяя их друг с другом и изменяя их параметры, вы можете быстро создать модель глубокого обучения.
Соответствующий код Python можно просмотреть в браузере или скопировать в буфер обмена одним щелчком мыши.
В одном меню вы можете выбрать, хотите ли вы, чтобы код использовал TensorFlow или PyTorch.
… И вы можете легко создавать ссылки для обмена на свои модели!
Быстрый пример
Так что давай попробуем! Для этого примера мы создадим следующую модель, которая, в свою очередь, будет обучена на наборе данных CIFAR10.
Для тех, кто любит десерт в первую очередь: вот готовая модель, вот колаб для этого примера.
Во-первых: создайте новую модель
Начните с перехода на flowpoints.io. На вашем экране должен появиться довольно пустой пользовательский интерфейс.
На боковой панели щелкните раскрывающееся меню «Библиотека» и выберите «TensorFlow». Теперь код для нашей модели будет использовать TensorFlow вместо PyTorch.
Затем щелкните раскрывающееся меню «Тема» и выберите «оранжевый». Это не имеет практического значения, но мы здесь кодируем стильно.
Во-вторых: добавьте в модель несколько потоковых точек
Добавьте некоторые операции к вашей модели. Нажмите синюю кнопку +, чтобы создать одну новую точку потока. Первая появившаяся точка потока должна сказать «Вход». Эта точка будет использоваться, чтобы сообщить модели форму нашего ввода. Мы вернемся к этому.
Не нажимая больше нигде, нажмите кнопку + еще несколько раз. Несколько потоковых точек должны появиться друг под другом и подключиться автоматически.
Если соединение отсутствует: щелкните точку потока, из которой вы хотите получить выходные данные, удерживайте нажатой клавишу Shift и щелкните точку потока, к которой вы хотите подключиться. Соединение должно появиться немедленно. Чтобы удалить соединение, просто повторите эту процедуру.
Создайте столько точек потока, сколько захотите, и расположите их так, как вам удобно. Или просто скопируйте модель с картинки.
В-третьих: изменение типов слоев
К настоящему времени у вас есть большой набор линейных операций. Это нам не очень поможет. Пришло время сказать каждой точке потока, что она должна делать.
Щелкните первую точку потока («Вход») и выберите вкладку «Точка потока» на боковой панели. Убедитесь, что поле «n_dims» установлено на 3, а «размеры» - 32, 32, 3. Это размеры изображений в наборе данных CIFAR10.
Щелкните следующую точку потока (ту, которая подключена к входу), и щелкните область «Тип слоя». Здесь вы измените работу этой точки потока. Начните с удаления всего текста в этом поле и введите «Конв.». Должен появиться список операций, причем Conv2d находится довольно близко к началу. Выберите эту операцию.
Крошечные оранжевые и синие значки показывают, в какой библиотеке доступен рассматриваемый слой.
Параметры точки потока должны измениться, чтобы соответствовать параметрам операции Conv2D в TensorFlow.
Установите все параметры на что-нибудь, что имеет смысл (вы можете использовать в качестве примера мою модель).
Повторите этот шаг для всех точек потока, изменив их типы слоев и параметры, чтобы они имели смысл.
Четвертое: взгляните на код!
Щелкните вкладку «Код» на боковой панели, чтобы отобразить код для вашей текущей модели. Это должно выглядеть примерно так:
Весь код выглядит так:
Готово!
Чтобы поделиться своей работой или сохранить ее на будущее: нажмите кнопку обмена ссылкой в небольшой стопке кнопок в нижнем левом углу экрана. Появится диалоговое окно с запросом пароля. Это можно использовать для защиты вашей модели. Если вы хотите создать общедоступную ссылку (как я сделал в этом примере), просто оставьте поле пароля пустым.
Чтобы скопировать код для вашей модели, нажмите кнопку копирования в стеке кнопок. Появится уведомление о том, что код был скопирован в ваш буфер обмена. Вы можете вставить это прямо в свой конвейер. Вы можете найти код моей модели в колабе, который я создал для этого небольшого пошагового руководства :)
Спасибо за внимание!
Не стесняйтесь делиться любыми отзывами, открывать новые проблемы, если вы обнаружите ошибки (код с открытым исходным кодом), или добавлять функции и исправления самостоятельно!