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

Mikrodenetleyicilerin RAM ve depolama alanı sınırlıdır. Bu durum, makine öğrenimi modellerinin boyutuna kısıtlamalar getirir. Buna ek olarak, Mikrodenetleyiciler için TensorFlow Lite şu anda sınırlı bir işlem alt kümesini desteklemektedir. Bu nedenle, tüm model mimarileri mümkün değildir.

Bu belgede, bir TensorFlow modelini mikrodenetleyiciler üzerinde çalışacak şekilde dönüştürme süreci açıklanmaktadır. Ayrıca, desteklenen işlemleri özetler ve sınırlı belleğe sığacak şekilde bir model tasarlama ve eğitme konusunda yol gösterir.

Bir model derlemenin ve dönüştürmenin uçtan uca, çalıştırılabilir bir örneği için Merhaba Dünya örneğine bakın.

Model dönüşümü

Eğitilmiş bir TensorFlow modelini mikrodenetleyiciler üzerinde çalışacak şekilde dönüştürmek için TensorFlow Lite conversioner Python API'yi kullanmalısınız. Bu işlem, modeli FlatBuffer'a dönüştürerek model boyutunu küçültür ve TensorFlow Lite işlemlerini kullanacak şekilde değiştirir.

Mümkün olan en küçük model boyutunu elde etmek için eğitim sonrası nicelemeyi kullanmayı düşünmeniz gerekir.

C dizisine dönüştürün

Birçok mikrodenetleyici platformu yerel dosya sistemi desteği sunmaz. Programınızdaki bir modeli kullanmanın en kolay yolu, modeli bir C dizisi olarak eklemek ve programınızda derlemektir.

Aşağıdaki unix komutu, TensorFlow Lite modelini char dizisi olarak içeren bir C kaynak dosyası oluşturur:

xxd -i converted_model.tflite > model_data.cc

Çıkış şuna benzer olacaktır:

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 programınıza ekleyebilirsiniz. Yerleştirilmiş platformlarda daha iyi bellek verimliliği için dizi bildirimini const olarak değiştirmek önemlidir.

Programınızda model ekleme ve kullanma ile ilgili örnek için Hello World örneğindeki hello_world_test.cc bölümüne bakın.

Model mimarisi ve eğitimi

Mikrodenetleyicilerde kullanılmak üzere bir model tasarlarken model boyutunu, iş yükünü ve kullanılan işlemleri dikkate almak önemlidir.

Model boyutu

Model, hem ikili program hem de çalışma zamanında hedef cihazınızın belleğine sığabilecek kadar küçük olmalıdır.

Daha küçük bir model oluşturmak için mimarinizde daha az sayıda ve daha küçük katmanlar kullanabilirsiniz. Ancak, küçük modellerin yetersiz uyum sorunundan etkilenme olasılığı daha yüksektir. Bu, birçok sorun için belleğe sığacak en büyük modeli denemek mantıklıdır. Bununla birlikte, daha büyük modeller kullanmak işlemci iş yükünün artmasına da neden olur.

İş yükü

Modelin boyutu ve karmaşıklığı, iş yükü üzerinde etkilidir. Büyük ve karmaşık modeller daha yüksek görev döngüsüne yol açabilir. Bu da cihazınızın işlemcisinin çalışmaya daha fazla, boşta kalmaya daha az vakit harcayacağı anlamına gelir. Bu durum güç tüketimini ve ısı çıkışını artıracağından uygulamanıza bağlı olarak sorun olabilir.

İşlem desteği

Mikrodenetleyiciler için TensorFlow Lite, şu anda sınırlı bir TensorFlow işlemleri alt kümesini desteklemektedir. Bu, çalıştırılabilecek model mimarilerini etkiler. Hem referans uygulamaları hem de belirli mimariler için optimizasyonlar açısından işlem desteğini genişletme çalışmalarımız devam ediyor.

Desteklenen işlemler şu dosyada görülebilir: micro_mutable_ops_resolver.h