Mikrodenetleyicilerin RAM ve depolama alanı sınırlı olduğundan modellerinin farklı boyutları vardır. Buna ek olarak, Mikrodenetleyiciler şu anda sınırlı bir işlem alt kümesini desteklemektedir. mümkün olduğunu fark ettik.
Bu belgede, bir TensorFlow modelini şurada çalışacak şekilde dönüştürme işlemi açıklanmaktadır: kontrol edebilirsiniz. Ayrıca desteklenen işlemleri ana hatlarıyla özetler ve sınırlı belleğe sığması için bir model tasarlama ve eğitme.
Bir model oluşturma ve dönüştürmeyle ilgili uçtan uca, çalıştırılabilir bir örnek için Hello World örneğine bakalım.
Model dönüştürme
Eğitilmiş bir TensorFlow modelini mikrodenetleyicilerde çalışacak şekilde dönüştürmek için
"the"
LiteRT dönüştürücü Python API.
Bu işlem, modeli
FlatBuffer
, model boyutunu küçültür,
ve LiteRT işlemlerini kullanacak şekilde değiştirebilirsiniz.
Mümkün olan en küçük model boyutunu elde etmek için eğitim sonrası ölçme hakkında daha fazla bilgi edinin.
C dizisine dönüştürün
Birçok mikrodenetleyici platformunun yerel dosya sistemi desteği yoktur. İlgili içeriği oluşturmak için kullanılan programınızdaki bir modeli kullanmanın en kolay yolu, onu C dizisi olarak eklemek ve programınıza derleyin.
Aşağıdaki unix komutu,
char
dizisi olarak LiteRT modeli:
xxd -i converted_model.tflite > model_data.cc
Çıkış şuna benzer:
unsigned char converted_model_tflite[] = {
0x18, 0x00, 0x00, 0x00, 0x54, 0x46, 0x4c, 0x33, 0x00, 0x00, 0x0e, 0x00,
// <Lines omitted>
};
unsigned int converted_model_tflite_len = 18200;
Dosyayı oluşturduktan sonra onu programınıza ekleyebilirsiniz. Evet
daha iyi bellek için dizi bildirimini const
olarak değiştirmek önemlidir
verimlilik artışı sağlıyor.
Bir modeli programınıza nasıl dahil edeceğiniz ve kullanacağınızla ilgili bir örnek için bkz.
hello_world_test.cc
bu Merhaba Dünya örneğinde
Model mimarisi ve eğitimi
Mikrodenetleyicilerde kullanılacak bir model tasarlarken model boyutu, iş yükü ve kullanılan işlemler.
Model boyutu
Model, hedef cihazınızın belleğine sığacak kadar küçük ve hem ikili program hem de çalışma zamanında programlanabilir.
Daha küçük bir model oluşturmak için, modelinizde daha az ve daha küçük katmanlar kullanabilirsiniz. bahsedeceğim. Bununla birlikte, küçük modellerin yetersiz uyum sorunu yaşama olasılığı daha yüksektir. Bu da birçok sorun için en büyük modeli kullanmayı denemek ve hafızaya saklanacak. Ancak daha büyük modelleri kullanmak, işlemci iş yükünü artırdı.
İş yükü
Modelin boyutu ve karmaşıklığı, iş yükünü etkiler. Büyük, karmaşık model daha uzun bir görev döngüsüne neden olabilir. Bu da cihazınızın işlemcisinin daha çok, boşta daha az zaman harcıyor. Bu, güç seviyesini artıracak bağlı olarak bir sorun olabilir. Bu da tüketim ve ısı çıkışı gibi bir uygulamadır.
İşlem desteği
Mikrodenetleyiciler için LiteRT şu anda sınırlı sayıda Model mimarilerini etkileyen TensorFlow işlemleri gerekir. Hem referansları olan uygulamalar ile optimizasyonlara göz atın.
Desteklenen işlemler dosyada görülebilir
micro_mutable_ops_resolver.h