Mikrodenetleyiciler için TensorFlow Lite C++ kitaplığı , TensorFlow deposunun bir parçasıdır. Okunabilir, değiştirilmesi kolay, iyi test edilmiş, entegrasyonu kolay ve normal TensorFlow Lite ile uyumlu olacak şekilde tasarlanmıştır.
Aşağıdaki belge C++ kitaplığının temel yapısını özetlemekte ve kendi projenizi oluşturma konusunda bilgi sağlamaktadır.
Dosya yapısı
micro
kök dizin nispeten basit bir yapıya sahiptir. Bununla birlikte, kapsamlı TensorFlow deposunun içinde yer aldığından, ilgili kaynak dosyalarını çeşitli gömülü geliştirme ortamlarında ayrı ayrı sağlayan komut dosyaları ve önceden oluşturulmuş proje dosyaları oluşturduk.
Anahtar dosyalar
Mikrodenetleyiciler için TensorFlow Lite yorumlayıcısını kullanmaya yönelik en önemli dosyalar, testlerle birlikte projenin kökünde bulunur:
[`micro_mutable_op_resolver.h`](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/micro_mutable_op_resolver.h)
can be used to provide the operations used by the interpreter to run the
model.
-
micro_error_reporter.h
hata ayıklama bilgilerini verir. -
micro_interpreter.h
modelleri işlemek ve çalıştırmak için kod içerir.
Tipik kullanıma ilişkin bir kılavuz için Mikrodenetleyicileri kullanmaya başlama konusuna bakın.
Derleme sistemi belirli dosyaların platforma özel uygulamalarını sağlar. Bunlar platform adına sahip bir dizinde bulunur; örneğin cortex-m
.
Aşağıdakiler de dahil olmak üzere birkaç başka dizin daha mevcuttur:
-
kernel
, işlem uygulamalarını ve ilgili kodu içerir. - build araçları ve bunların çıktılarını içeren
tools
. -
examples
, örnek kodu içerir.
Yeni bir proje başlat
Merhaba Dünya örneğini yeni projeler için şablon olarak kullanmanızı öneririz. Bu bölümdeki talimatları izleyerek seçtiğiniz platforma uygun bir sürümünü edinebilirsiniz.
Arduino kütüphanesini kullanın
Arduino kullanıyorsanız, Arduino IDE ve Arduino Create'e manuel olarak yükleyebileceğiniz Arduino_TensorFlowLite
Arduino kütüphanesinde Hello World örneği bulunmaktadır.
Kütüphane eklendikten sonra File -> Examples
gidin. Listenin alt kısmına yakın bir yerde TensorFlowLite:hello_world
adlı bir örnek görmelisiniz. Örneği yüklemek için onu seçin ve hello_world
tıklayın. Daha sonra örneğin bir kopyasını kaydedebilir ve bunu kendi projenizin temeli olarak kullanabilirsiniz.
Diğer platformlar için projeler oluşturun
Mikrodenetleyiciler için TensorFlow Lite, Makefile
kullanarak gerekli tüm kaynak dosyaları içeren bağımsız projeler oluşturabilir. Mevcut desteklenen ortamlar Keil, Make ve Mbed'dir.
Bu projeleri Make ile oluşturmak için TensorFlow/tflite-micro deposunu kopyalayın ve aşağıdaki komutu çalıştırın:
make -f tensorflow/lite/micro/tools/make/Makefile generate_projects
Bağımlılıklar için bazı büyük araç zincirlerinin indirilmesi gerektiğinden bu işlem birkaç dakika sürecektir. Tamamlandığında, gen/linux_x86_64/prj/
gibi bir yol içinde oluşturulmuş bazı klasörleri görmelisiniz (tam yol, ana bilgisayar işletim sisteminize bağlıdır). Bu klasörler oluşturulan proje ve kaynak dosyalarını içerir.
Komutu çalıştırdıktan sonra Merhaba Dünya projelerini gen/linux_x86_64/prj/hello_world
konumunda bulabileceksiniz. Örneğin hello_world/keil
, Keil projesini içerecektir.
Testleri çalıştırın
Kitaplığı oluşturmak ve tüm birim testlerini çalıştırmak için aşağıdaki komutu kullanın:
make -f tensorflow/lite/micro/tools/make/Makefile test
Tek bir testi çalıştırmak için <test_name>
yerine testin adını koyarak aşağıdaki komutu kullanın:
make -f tensorflow/lite/micro/tools/make/Makefile test_<test_name>
Test adlarını projenin Makefiles'ında bulabilirsiniz. Örneğin, examples/hello_world/Makefile.inc
Merhaba Dünya örneğinin test adlarını belirtir.
İkili dosyalar oluşturun
Belirli bir proje için (örnek uygulama gibi) çalıştırılabilir bir ikili dosya oluşturmak için aşağıdaki komutu kullanın ve <project_name>
yerine oluşturmak istediğiniz projeyi yazın:
make -f tensorflow/lite/micro/tools/make/Makefile <project_name>_bin
Örneğin, aşağıdaki komut Hello World uygulaması için bir ikili dosya oluşturacaktır:
make -f tensorflow/lite/micro/tools/make/Makefile hello_world_bin
Varsayılan olarak proje ana bilgisayar işletim sistemi için derlenecektir. Farklı bir hedef mimari belirtmek için TARGET=
ve TARGET_ARCH=
kullanın. Aşağıdaki örnek, genel bir cortex-m0 için Merhaba Dünya örneğinin nasıl oluşturulacağını gösterir:
make -f tensorflow/lite/micro/tools/make/Makefile TARGET=cortex_m_generic TARGET_ARCH=cortex-m0 hello_world_bin
Bir hedef belirlendiğinde, orijinal kodun yerine hedefe özgü mevcut herhangi bir kaynak dosyası kullanılacaktır. Örneğin, examples/hello_world/cortex_m_generic
alt dizini, hedef cortex_m_generic
belirtildiğinde kullanılacak constants.cc
ve output_handler.cc
dosyalarının SparkFun Edge uygulamalarını içerir.
Proje adlarını projenin Makefiles'ında bulabilirsiniz. Örneğin, examples/hello_world/Makefile.inc
Merhaba Dünya örneğinin ikili adlarını belirtir.
Optimize edilmiş çekirdekler
tensorflow/lite/micro/kernels
kökündeki referans çekirdekler saf C/C++ dilinde uygulanır ve platforma özgü donanım optimizasyonlarını içermez.
Çekirdeklerin optimize edilmiş sürümleri alt dizinlerde sağlanır. Örneğin, kernels/cmsis-nn
Arm'ın CMSIS-NN kütüphanesini kullanan optimize edilmiş birkaç çekirdek içerir.
Optimize edilmiş çekirdekler kullanarak projeler oluşturmak için, <subdirectory_name>
yerine optimizasyonları içeren alt dizinin adını koyarak aşağıdaki komutu kullanın:
make -f tensorflow/lite/micro/tools/make/Makefile TAGS=<subdirectory_name> generate_projects
Kendi optimizasyonlarınızı onlar için yeni bir alt klasör oluşturarak ekleyebilirsiniz. Yeni optimize edilmiş uygulamalar için çekme isteklerini teşvik ediyoruz.
Arduino kütüphanesini oluşturun
Kütüphanenin yeni bir yapısını oluşturmanız gerekiyorsa TensorFlow deposundan aşağıdaki betiği çalıştırabilirsiniz:
./tensorflow/lite/micro/tools/ci_build/test_arduino.sh
Ortaya çıkan kütüphane gen/arduino_x86_64/prj/tensorflow_lite.zip
dosyasında bulunabilir.
Yeni cihazlara bağlantı noktası
Mikrodenetleyiciler için TensorFlow Lite'ın yeni platformlara ve cihazlara taşınmasına ilişkin rehberlik micro/docs/new_platform_support.md
adresinde bulunabilir.