Подход с нисък код за включване на машинно обучение в Интернет на нещата

Gartner прогнозира, че броят на свързаните устройства ще нарасне до над 25 милиарда до 2021 г.. И предвид разнообразието от устройства, започването на работа с IoT може да изглежда обезсърчително. Настройването на комуникация с или между тези устройства често не е тривиално. Допълнителни предизвикателства възникват, ако искате да интегрирате машинно обучение! Решенията трябва да обединяват различни API на устройства, услуги и понякога протоколи.

Node-RED с TensorFlow.js въвежда машинно обучение в IoT по лесен начин с нисък код. Той отваря нови, креативни подходи за разрешаване на машинно обучение за Интернет на нещата. Разпознаване на изображения, аудио класифициране и т.н., всички възможни на устройство с минимален код.

Въведете Node-RED

Node-RED е базиран на поток инструмент за визуално програмиране. С неговия базиран на браузър редактор можете просто да свържете хардуерни устройства, API и онлайн услуги, за да създадете вашето приложение. Разработвате мощни приложения, като свързвате възли, вместо да пишете код. И можете да ги разположите с едно кликване.

Node-RED работи на локални работни станции, в облака и крайни устройства. Той се превърна в идеален инструмент за Raspberry Pi и друг евтин хардуер.

Времето за изпълнение Node-RED е леко и изградено върху Node.js. Той се възползва напълно от управлявания от събития, неблокиращ I/O модел на Node.js. Има и допълнителната полза от навлизането в най-използвания език за програмиране — JavaScript!

С всички ресурси на общността на Node-RED и обширната NPM екосистема можете да създавате IoT потоци по удобен за потребителя начин, който е „въображаем“ и „помага за спасяването на животи“.

Здравей TensorFlow.js

TensorFlow.js е JavaScript библиотека с отворен код. Позволява ви да създавате, обучавате и изпълнявате модели за машинно обучение в браузъра и Node.js.

Често активирането на AI възможности включва изпращане на данните от устройство към сървър. Изчисленията се извършват на сървъра и резултатите се връщат на устройството за предприемане на действия. Това не е идеално, когато сигурността на данните или надеждността на мрежата е проблем.

Но с TensorFlow.js има увеличение на поверителността и сигурността на данните. Данните не напускат устройството! Обучението и прогнозите могат да се извършват директно на устройството, събиращо данните. Това също така прави възможно работата офлайн и на отдалечени места без връзка.

Node-RED среща TensorFlow.js

Комбинацията от Node-RED и TensorFlow.js означава, че можете да създавате IoT приложения, които използват машинно обучение, просто чрез плъзгане и пускане. Плъзнете и пуснете възел за машинно обучение, свържете го и разположете на вашето устройство.

Но за да стигнете до тази точка, трябва да имате налични възли TensorFlow.js. Възлите на TensorFlow.js започват да се показват в Node-RED библиотеката и през GitHub repos и други се пускат редовно. Тези възли предоставят различни функции за машинно обучение, които да добавите към вашия поток. Но какво ще стане, ако няма възел TensorFlow.js за вашата задача за машинно обучение? Можете да го „създадете“!

Разширяемостта на Node-RED ви позволява да създавате персонализирани възли за вашите нужди. Пакетирането на възли Node-RED е подобно на пакетирането на модули Node.js, но с допълнителна информация.

Възелът Node-RED се състои от три основни файла:

  • package.json: стандартен файл, използван от модулите Node.js, но с добавена секция node-red
  • JavaScript файл, който определя поведението на възела
  • HTML файл, който определя свойствата на възела, диалогов прозорец за редактиране и помощен текст

„JavaScript файлът е мястото, където бихте обвили своя код TensorFlow.js“. Той ще зареди модела TensorFlow.js и ще изпълни прогнозата.

Веднъж свързан, потребителският възел е достъпен за свързване в поток и разгръщане.

Може да има предизвикателства

Колкото и просто да изглежда, все още може да има предизвикателства и опасения, които да имате предвид.

Тъй като имате работа с крайни устройства, производителността е основен приоритет. Моделите може да са твърде големи, за да бъдат заредени на крайно устройство. Или може да изисква специфично оптимизиране, за да се представи добре в JavaScript.

Също така, кога в жизнения цикъл на възела трябва да заредите модела? Трябва ли да имате един възел за обработка на вход/изход и изпълнение на прогноза? Или да разделите работата на два или три възела?

Моделът TensorFlow.js, който използвате, и конкретният случай на употреба, към който се отнася, често диктуват подхода и отговорите на много от тези проблеми.

Приготвяме се да започнем

Комбинирането на TensorFlow.js с Node-RED намалява бариерата за навлизане в машинното обучение. От интерфейса за плъзгане и пускане до внедряването с едно кликване, IoT ентусиастите и разработчиците могат да включат машинно обучение по достъпен и бърз начин.

Посетете Node-RED и модел на код TensorFlow.js, за да разгледате примерно решение. Научете повече, като прегледате пълния код и внедрите урока.

Разгледайте Node-RED библиотека за повече TensorFlow.js възли, потоци и колекции, когато станат достъпни. Всеки е „добре дошъл да допринесе там“, така че другите да могат да се поучат от вашата работа.