ARM kartları için TensorFlow Lite oluşturun

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

TensorFlow Lite, iki yapı sistemini destekler ve her bir yapı sisteminden desteklenen özellikler 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 alet 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'yi destekleyen herhangi bir platform
XNNPack desteklenen desteklenen
piton çarkı desteklenen desteklenen
C API'si desteklenen desteklenen
C++ API'si Bazel projeleri için desteklenir 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 with CMake sayfası mevcuttur.

Bazel ile ARM için çapraz derleme

Bazel projeniz varsa veya TF ops kullanmak istiyorsanız Bazel build sistemini kullanmanız daha iyi olur. Bir ARM32/64 paylaşımlı 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 32 bit Raspberry Pi işletim sistemi ile RPI3, RPI4
AArch64 (ARM64) --config=elinux_aarch64 Mercan, Ubuntu 64 bit ile 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 aşağıdaki adımları izleyin:

Adım 1. Bazel'i yükleyin

Bazel, TensorFlow için birincil yapı sistemidir. Bazel yapı 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

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

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

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

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

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

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

Şu anda, gereken tüm başlık dosyalarını çıkarmanın basit bir yolu yoktur, bu nedenle tüm başlık dosyalarını TensorFlow/lite/ içindeki TensorFlow deposundan dahil etmelisiniz. Ek olarak, FlatBuffers ve Abseil'den başlık dosyalarına ihtiyacınız olacak.

Vb

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