Как встроить нейросеть в модель Engee? 📓
Друзья,
Да, мы понимаем, что про нейросети уже говорят из каждого утюга. Но мы точно знаем, что есть инженерные задачи, которые отлично решаются с их помощью, что мы и делаем и вам желаем! 😉
Например:
🪄Фильтры и датчики для прогноза по временным рядам
✨Запутанные характеристики, которые не влезают ни в какие полиномы
🔋Модели для мониторинга оборудования и предсказания с онлайн-обучением
Хотим рассказать вам сегодня про один из наших проектов по созданию нейросетей в Engee, где мы показываем, как совместить гибкость и скорость среды расчетов и удобство компоновки и отладки системы на визуальной модели.
Julia – очень интересный язык для работы с данными и генерации кода. Для обучения нейросетей нужны конструкции, которые можно продифференцировать. А Julia, представьте себе, дифференцируемый язык программирования.
Для обучения и создания НС мы используем библиотеку
Flux
. Судите сами, трудно ли создать НС с ее помощью:
Chain( Dense( 2 => 20, relu ),
Dense( 20 => 5, relu ),
Dense( 5 => 1 ) )
Три слоя, два нейрона на входе, один на выходе… Остальные вещи – функция потерь, подача данных, цикл обучения – в Julia все это выполняется короткими и ясными командами.
Теперь хотелось бы соединить нейросеть с остальными компонентами системы в одной модели, и тут нет ничего лучше наглядной схемы. Несколько блоков
Constant
,
Add
и
Product
, и НС будет управлять любыми заслонками, моторами и прочими компонентами вашей инженерной экосистемы.
Обученная нейросеть хранится в общей переменной
model
. Поэтому, чтобы разместить ее на блок-схеме, мы просто прописали
model.weight
и
model.bias
в свойствах блоков. Либо можно скопировать эти матрицы внутрь констант модели через команду
engee.set_param()
. Либо программно сгенерировать всю модель, блок за блоком...
Уверены, что вам нравится воплощать такие технологии в своих проектах, поэтому готовим еще много материалов по этой теме.
Приглашайте друзей и коллег, увидимся в Engee!💼