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