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