Mikrodenetleyiciler için TensorFlow Lite, yalnızca birkaç kilobayt belleğe sahip mikro denetleyicilerde ve diğer cihazlarda makine öğrenimi modellerini çalıştırmak üzere tasarlanmıştır. Çekirdek çalışma zamanı, bir Arm Cortex M3'te sadece 16 KB'ye sığar ve birçok temel modeli çalıştırabilir. İşletim sistemi desteği, herhangi bir standart C veya C++ kitaplığı veya dinamik bellek ayırma gerektirmez.
Mikrodenetleyiciler neden önemlidir?
Mikrodenetleyiciler, tipik olarak, temel hesaplama gerektiren donanımın içine yerleştirilmiş küçük, düşük güçlü bilgi işlem cihazlarıdır. Makine öğrenimini küçük mikrodenetleyicilere getirerek, ev aletleri ve Nesnelerin İnterneti cihazları da dahil olmak üzere hayatımızda kullandığımız milyarlarca cihazın zekasını, genellikle bant genişliğine ve genellikle bant genişliğine tabi olan pahalı donanımlara veya güvenilir internet bağlantılarına güvenmeden artırabiliriz. güç kısıtlamaları ve yüksek gecikme ile sonuçlanır. Bu, cihazdan hiçbir veri çıkmadığından gizliliğin korunmasına da yardımcı olabilir. Günlük rutininize uyum sağlayabilen akıllı cihazlar, problemlerle normal çalışma arasındaki farkı anlayan akıllı endüstriyel sensörler ve çocukların eğlenceli ve keyifli bir şekilde öğrenmesine yardımcı olabilecek sihirli oyuncaklar hayal edin.
Desteklenen platformlar
Mikrodenetleyiciler için TensorFlow Lite, C++ 11'de yazılmıştır ve 32 bit platform gerektirir. Arm Cortex-M Serisi mimarisine dayanan birçok işlemci ile kapsamlı bir şekilde test edilmiştir ve ESP32 dahil diğer mimarilere taşınmıştır. Çerçeve bir Arduino kütüphanesi olarak mevcuttur. Ayrıca Mbed gibi geliştirme ortamları için projeler üretebilir. Açık kaynak kodludur ve herhangi bir C++ 11 projesine dahil edilebilir.
Aşağıdaki geliştirme kartları desteklenir:
- Arduino Nano 33 BLE Sense
- KıvılcımEğlence Kenarı
- STM32F746 Keşif kiti
- Adafruit Kenar Rozeti
- Mikrodenetleyici Kiti için Adafruit TensorFlow Lite
- Adafruit Devre Bahçesi Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-GÖZ
- Wio Terminali: ATSAMD51
- Himax WE-I Plus EVB Uç Nokta AI Geliştirme Kartı
- Özet DesignWare ARC EM Yazılım Geliştirme Platformu
- Sony Spresense
Örnekleri keşfedin
Her örnek uygulama Github'dadır ve desteklenen platformlarına nasıl dağıtılabileceğini açıklayan bir README.md
dosyasına sahiptir. Bazı örneklerde ayrıca aşağıda verildiği gibi belirli bir platformu kullanan uçtan uca öğreticiler bulunur:
- Merhaba Dünya - Mikrodenetleyiciler için TensorFlow Lite kullanmanın mutlak temellerini gösterir
- Mikro konuşma - "evet" ve "hayır" sözcüklerini algılamak için bir mikrofonla sesi yakalar
- Sihirli değnek - Üç farklı fiziksel hareketi sınıflandırmak için ivmeölçer verilerini yakalar
- Kişi algılama - Bir kişinin varlığını veya yokluğunu algılamak için bir görüntü sensörüyle kamera verilerini yakalar
iş akışı
Bir mikro denetleyicide TensorFlow modelini dağıtmak ve çalıştırmak için aşağıdaki adımlar gereklidir:
- Bir model eğitin :
- Hedef cihazınıza uyan ve desteklenen işlemleri içeren küçük bir TensorFlow modeli oluşturun .
- TensorFlow Lite dönüştürücüyü kullanarak bir TensorFlow Lite modeline dönüştürün .
- Aygıtta salt okunur bir program belleğinde depolamak için standart araçları kullanarak bir C bayt dizisine dönüştürün .
- C++ kitaplığını kullanarak cihaz üzerinde çıkarımı çalıştırın ve sonuçları işleyin.
sınırlamalar
Mikrodenetleyiciler için TensorFlow Lite, mikrodenetleyici geliştirmenin belirli kısıtlamaları için tasarlanmıştır. Daha güçlü cihazlar üzerinde çalışıyorsanız (örneğin, Raspberry Pi gibi gömülü bir Linux cihazı), standart TensorFlow Lite çerçevesini entegre etmek daha kolay olabilir.
Aşağıdaki sınırlamalar dikkate alınmalıdır:
- TensorFlow işlemlerinin sınırlı bir alt kümesi için destek
- Sınırlı sayıda cihaz için destek
- Manuel bellek yönetimi gerektiren düşük seviyeli C++ API
- Cihazda eğitim desteklenmiyor
Sonraki adımlar
- Örnek uygulamayı denemek ve API'yi nasıl kullanacağınızı öğrenmek için mikro denetleyicileri kullanmaya başlayın .
- Kitaplığı kendi projenizde nasıl kullanacağınızı öğrenmek için C++ kitaplığını anlayın .
- Mikrodenetleyicilerde dağıtım için modelleri eğitme ve dönüştürme hakkında daha fazla bilgi edinmek için modeller oluşturun ve dönüştürün .