ARM kartları için TensorFlow Lite oluşturun

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

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. Ayrı vardır CKağıt ile çapraz derleme TensorFlow Lite bunun için kasada sayfada.

Bazel ile ARM için çapraz derleme

Bazel projeniz varsa veya TF ops kullanmak istiyorsanız Bazel build sistemini kullanmanız daha iyi olur. Sen entegre kullanacağız ARM GCC 8.3 toolchain bir ARM32 / 64 paylaşılan kitaplığı oluşturmak için Bazel ile.

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 resmin üzerine test edilmiştir tensorflow / tensorflow: devel .

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. En son sürümünü yükleyin Bazel yapı sistemine .

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

: Sen paylaşılan kitaplık bulabilirsiniz bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so .

Kontrol TensorFlow Lite C API ayrıntı için sayfa.

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

: Sen paylaşılan kitaplık bulabilirsiniz bazel-bin/tensorflow/lite/libtensorflowlite.so .

Şu anda, gereken tüm başlık dosyalarını çıkarmanın kolay bir yolu yoktur, bu nedenle tüm başlık dosyalarını TensorFlow/lite/ içindeki TensorFlow deposundan eklemelisiniz. 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