ARM panoları için TensorFlow Lite oluşturun

Bu sayfada ARM tabanlı bilgisayarlar için TensorFlow Lite kitaplıklarının nasıl oluşturulacağı açıklanmaktadır.

TensorFlow Lite iki yapı sistemini destekler ve her yapı sisteminin desteklenen özellikleri aynı değildir. Uygun bir yapı sistemi seçmek için aşağıdaki tabloyu kontrol edin.

Özellik bazel CMake
Önceden tanımlanmış araç zincirleri armhf, aarch64 armel, armhf, aarch64
Özel takım zincirleri kullanımı daha zor kullanımı kolay
TF operasyonlarını seçin desteklenen desteklenmiyor
GPU temsilcisi yalnızca Android için kullanılabilir OpenCL'i destekleyen herhangi bir platform
XNNPack desteklenen desteklenen
Piton Çarkı desteklenen desteklenen
C API'si desteklenen desteklenen
C++ API'si Bazel projelerine destek verildi CMake projeleri için desteklenir

CMake ile ARM için çapraz derleme

Bir CMake projeniz varsa veya özel bir araç zinciri kullanmak istiyorsanız çapraz derleme için CMake'i kullanmanız daha iyi olur. Bunun için ayrı bir Çapraz derleme TensorFlow Lite ve CMake sayfası mevcuttur.

Bazel ile ARM için çapraz derleme

Eğer Bazel projeniz varsa veya TF ops kullanmak istiyorsanız Bazel build sistemini kullanmanız daha iyi olur. ARM32/64 paylaşımlı kütüphane oluşturmak için Bazel ile entegre ARM GCC 8.3 araç zincirlerini kullanacaksınız.

Hedef Mimarisi Bazel Yapılandırması Uyumlu Cihazlar
armhf (ARM32) --config=elinux_armhf 32 bit Raspberry Pi işletim sistemi ile RPI3, RPI4
AArch64 (ARM64) --config=elinux_aarch64 Mercan, Ubuntu 64 bitli RPI4

Aşağıdaki talimatlar Ubuntu 16.04.3 64 bit PC (AMD64) ve TensorFlow devel docker image tensorflow/tensorflow:devel üzerinde test edilmiştir.

TensorFlow Lite'ı Bazel ile çapraz derlemek için şu adımları izleyin:

Adım 1. Bazel'i yükleyin

Bazel, TensorFlow'un birincil yapı sistemidir. Bazel derleme sisteminin en son sürümünü yükleyin.

Adım 2. TensorFlow deposunu klonlayın

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src

3. Adım. ARM ikili dosyasını oluşturun

C kütüphanesi
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so

Paylaşılan bir kütüphaneyi şurada bulabilirsiniz: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so .

Ayrıntılar için TensorFlow Lite C API sayfasını kontrol edin.

C++ kütüphanesi
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so

Paylaşılan bir kütüphaneyi şurada bulabilirsiniz: bazel-bin/tensorflow/lite/libtensorflowlite.so .

Şu anda gerekli tüm başlık dosyalarını çıkarmanın doğrudan bir yolu yoktur, bu nedenle tüm başlık dosyalarını TensorFlow deposundan tensorflow/lite/ dosyasına eklemeniz gerekir. Ek olarak FlatBuffers ve Abseil'den başlık dosyalarına ihtiyacınız olacak.

Vesaire

Alet zinciriyle başka Bazel hedefleri de oluşturabilirsiniz. İşte bazı yararlı hedefler.

  • //tensorflow/lite/tools/benchmark:benchmark_model
  • //tensorflow/lite/examples/label_image:label_image