Modeller oluşturun ve dönüştürün

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