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