Mikrodenetleyiciler için LiteRT C++ kitaplığı, TensorFlow deposu. Okunabilir, değiştirilmesi kolay, test edilmiş, entegre edilmesi kolay, ve normal LiteRT ile uyumludur.
Aşağıdaki dokümanda C++ kitaplığının temel yapısı ve kendi projenizi oluşturmanızla ilgili bilgi sağlar.
Dosya yapısı
İlgili içeriği oluşturmak için kullanılan
micro
kök dizin nispeten basit bir yapıya sahiptir. Ancak bulunduğu için
oluşturduğumuz için komut dosyaları oluşturduk ve
ilgili kaynak dosyaları izole halde sunan, önceden oluşturulmuş proje dosyaları
yerleşik olarak bulunan
ekipmanları kullanın.
Anahtar dosyalar
Mikrodenetleyiciler için LiteRT'yi kullanmayla ilgili en önemli dosyalar çevirmenler, testler eşliğinde projenin kök dizininde 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 bilgileri verir.micro_interpreter.h
modellerin işlenip çalıştırılacağı kodu içerir.
Ayrıntılı bilgi için Mikrodenetleyicileri kullanmaya başlama adım adım açıklamalı kılavuzu mevcuttur.
Derleme sistemi, standart fonksiyonel bazı modellerin platforma özgü
dosyası olarak da kaydedebilir. Bunlar, örneğin platform adının bulunduğu bir dizinde bulunur.
cortex-m
.
Aşağıdakiler dahil olmak üzere birçok başka dizin mevcuttur:
kernel
Burada, işlem uygulamalarını ve ilişkili kodu içerir.tools
ele alacağız.examples
kullanabilirsiniz.
Yeni proje başlatın.
Yeni projeler için şablon olarak Hello World örneğini kullanmanızı öneririz. Siz Aşağıdaki adımları izleyerek seçtiğiniz platform için bunun bir sürümünü edinebilirsiniz: daha fazla bilgi edineceksiniz.
Arduino kitaplığını kullanma
Arduino kullanıyorsanız Hello World örneği
Arduino_TensorFlowLite
Arduino kitaplığını kullanabilirsiniz.
Arduino IDE ve Arduino Create'te.
Kitaplık eklendikten sonra File -> Examples
bölümüne gidin. Bir
örneğini görmek için TensorFlowLite:hello_world
adlı listeye bakın. Seç
bunu ve örneği yüklemek için hello_world
düğmesini tıklayın. Ardından, projenizin bir kopyasını
buna örnek verebilir ve kendi projenizin temeli olarak kullanabilirsiniz.
Diğer platformlar için projeler oluşturma
Mikrodenetleyiciler için LiteRT bağımsız projeler oluşturabilir
gerekli tüm kaynak dosyalarını içeren bir Makefile
kullanarak oluşturun. Şu anki
desteklenen ortamlar Keil, Make ve Mbed'dir.
Bu projeleri Make ile oluşturmak için TensorFlow/tflite-micro deposu şu komutu çalıştırın:
make -f tensorflow/lite/micro/tools/make/Makefile generate_projects
Bu işlem birkaç dakika sürer çünkü işlem için büyük araç zincirleri indirilmesi gerekir.
ve bildirmeyi konuştuk. İşlem tamamlandıktan sonra, oluşturulan bazı klasörler gösterilir.
gen/linux_x86_64/prj/
(
tam yol, ana makinenizin işletim sisteminize bağlıdır). Bu klasörlerde bulunan
oluşturulmuş proje ve kaynak dosyalarıdır.
Komutu çalıştırdıktan sonra Hello World projelerini şurada bulabilirsiniz:
gen/linux_x86_64/prj/hello_world
. Örneğin,
hello_world/keil
, Keil projesini içerir.
Testleri yapın
Kitaplığı derlemek 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 test çalıştırmak için <test_name>
komutunu değiştirerek aşağıdaki komutu kullanın:
yazın:
make -f tensorflow/lite/micro/tools/make/Makefile test_<test_name>
Test adlarını projenin Makefiles dosyasında bulabilirsiniz. Örneğin,
examples/hello_world/Makefile.inc
, Merhaba
World örneği.
İkili programlar derleme
Belirli bir projede (örnek uygulama gibi) çalıştırılabilir bir ikili program derlemek için:
<project_name>
komutunu istediğiniz projeyle değiştirerek aşağıdaki komutu kullanın
inşa etmek için:
make -f tensorflow/lite/micro/tools/make/Makefile <project_name>_bin
Örneğin, aşağıdaki komut Hello World için bir ikili program oluşturur uygulama:
make -f tensorflow/lite/micro/tools/make/Makefile hello_world_bin
Varsayılan olarak proje, ana makine işletim sistemine göre derlenir. Alıcı:
farklı bir hedef mimari belirtmek için TARGET=
ve TARGET_ARCH=
öğelerini kullanın. İlgili içeriği oluşturmak için kullanılan
aşağıdaki örnekte, genel bir etkinlik için Hello World örneğinin nasıl oluşturulacağı gösterilmektedir
cortex-m0:
make -f tensorflow/lite/micro/tools/make/Makefile TARGET=cortex_m_generic TARGET_ARCH=cortex-m0 hello_world_bin
Bir hedef belirtildiğinde, hedefe özgü tüm kullanılabilir kaynak dosyaları
orijinal kodun yerine
kullanıldığını görürsünüz. Örneğin,
examples/hello_world/cortex_m_generic
, SparkFun Edge uygulamaları içeriyor
constants.cc
ve output_handler.cc
dosyaları; bu dosyalar,
cortex_m_generic
hedefi belirtildi.
Proje adlarını projenin Makefiles dosyasında bulabilirsiniz. Örneğin,
examples/hello_world/Makefile.inc
, Hello
World örneği.
Optimize edilmiş çekirdekler
tensorflow/lite/micro/kernels
kök dizinindeki referans çekirdekler:
yalnızca C/C++ olarak uygulanır ve platforma özgü donanımlar dahil edilmez.
optimize edebilirsiniz.
Çekirdeklerin optimize edilmiş sürümleri alt dizinlerde sağlanır. Örneğin,
kernels/cmsis-nn
, Arm'ın özelliklerinden yararlanan optimize edilmiş birkaç çekirdek içerir.
CMSIS-NN kitaplığı.
Optimize edilmiş çekirdekleri kullanarak proje oluşturmak için şu komutu kullanın:
<subdirectory_name>
yerine şunu içeren alt dizinin adını yazın:
optimizasyonlar:
make -f tensorflow/lite/micro/tools/make/Makefile TAGS=<subdirectory_name> generate_projects
Kendi optimizasyonlarınızı, yeni bir alt klasör oluşturarak ekleyebilirsiniz. Biz Optimize edilmiş yeni uygulamalar için çekme isteklerini teşvik eder.
Arduino kitaplığını oluşturma
Kitaplığın yeni bir derlemesini oluşturmanız gerekirse aşağıdaki komutu çalıştırabilirsiniz komut dosyasını indirin:
./tensorflow/lite/micro/tools/ci_build/test_arduino.sh
Ortaya çıkan kitaplık,
gen/arduino_x86_64/prj/tensorflow_lite.zip
Yeni cihazlara taşıma
Mikrodenetleyiciler için LiteRT'i yeni platformlara ve
cihazları şurada bulabilirsiniz:
micro/docs/new_platform_support.md
.