ARM kartları için TensorFlow Lite kartları oluşturma

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

TensorFlow Lite, iki derleme sistemini destekler ve her derleme sisteminin desteklenen özellikleri aynı değildir. Uygun bir derleme sistemi seçmek için aşağıdaki tabloya bakın.

Öne Çıkarın Bazel CMake
Önceden tanımlanmış araç zincirleri armhf, aarch64 armel, armhf, aarch64
Özel araç zincirleri kullanımı daha zor kullanımı kolay
TF işlemleri seç destekleniyor desteklenmiyor
GPU yetkisi yalnızca Android'de kullanılabilir OpenCL'yi destekleyen tüm platformlarda
XNNPack destekleniyor destekleniyor
Python Çarkı destekleniyor destekleniyor
C API'sı destekleniyor destekleniyor
C++ API'si Bazel projeleri için desteklenir CMake projelerinde 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 CMake ile çapraz derleme TensorFlow Lite sayfası mevcuttur.

ARM için Bazel ile çapraz derleme

Bazel projeniz varsa veya TF işlemlerini kullanmak istiyorsanız Bazel derleme sistemini kullanmanız daha iyi olur. ARM32/64 paylaşılan kitaplık oluşturmak için Bazel ile entegre ARM GCC 8.3 araç zincirlerini kullanacaksınız.

Hedef Mimari Bazel Yapılandırması Uyumlu Cihazlar
Armhf (ARM32) --config=elinux_armhf RPI3, RPI4, 32 bit Raspberry Pi OS
AArch64 (ARM64) --config=elinux_aarch64 Coral, RPI4 (Ubuntu 64 bit)

Aşağıdaki talimatlar Ubuntu 16.04.3 64 bit PC (AMD64) ve TensorFlow geliştirme docker görüntüsü tensorflow/tensorflow:devel'de test edilmiştir.

TensorFlow Lite'ı Bazel ile çapraz derlemek için aşağıdaki adımları uygulayın:

1. Adım: Bazel'ı yükleme

Bazel, TensorFlow için birincil derleme sistemidir. Bazel derleme sisteminin en son sürümünü yükleyin.

2. adım: TensorFlow deposunu klonlama

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

3. adım: ARM ikili programı derleme

C kitaplığı
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so

Paylaşılan bir kitaplığı şuralarda bulabilirsiniz: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so.

Ayrıntılar için TensorFlow Lite C API sayfasına bakın.

C++ kitaplığı
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so

Paylaşılan bir kitaplığı şuralarda bulabilirsiniz: bazel-bin/tensorflow/lite/libtensorflowlite.so.

Şu anda, gerekli tüm başlık dosyalarını ayıklamanın doğrudan bir yolu yoktur. Bu nedenle, tüm başlık dosyalarını TensorFlow deposundan tensorflow/lite/ dosyasına eklemeniz gerekir. Buna ek olarak, FlatBuffers ve Abseil'den başlık dosyalarına da ihtiyacınız olacaktır.

Vb

Araç zinciriyle başka Bazel hedefleri de oluşturabilirsiniz. Bazı yararlı hedefleri burada bulabilirsiniz.

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