TensorFlow Lite mit CMake erstellen

Diese Seite beschreibt , wie zu bauen und die TensorFlow Lite Bibliothek verwendet CMake - Tool.

Die folgenden Anweisungen sind auf Ubuntu 16.04.3 64-Bit - PC (AMD64), macOS Catalina (x86_64), Windows 10 und TensorFlow Entwick Docker Bild getestet devel: tensorflow / tensorflow .

Schritt 1. Installieren Sie das CMake-Tool

Es erfordert CMake 3.16 oder höher. Unter Ubuntu können Sie einfach den folgenden Befehl ausführen.

sudo apt-get install cmake

Oder Sie können folgen die offizielle Cmake Installationsanleitung

Schritt 2. TensorFlow-Repository klonen

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src

Schritt 3. Erstellen Sie das CMake-Build-Verzeichnis

mkdir tflite_build
cd tflite_build

Schritt 4. Führen Sie das CMake-Tool mit Konfigurationen aus

Release-Build

Es generiert standardmäßig eine optimierte Release-Binärdatei. Wenn Sie für Ihre Workstation erstellen möchten, führen Sie einfach den folgenden Befehl aus.

cmake ../tensorflow_src/tensorflow/lite

Debug-Build

Wenn Sie ein Debug - Build zu erzeugen , müssen die Symbolinformation hat, müssen Sie bieten -DCMAKE_BUILD_TYPE=Debug - Option.

cmake ../tensorflow_src/tensorflow/lite -DCMAKE_BUILD_TYPE=Debug

Cross-Compilation für Android

Sie können CMake verwenden, um Android-Binärdateien zu erstellen. Sie müssen installieren Android NDK und bieten den NDK Pfad mit -DDCMAKE_TOOLCHAIN_FILE Flagge. Sie müssen auch zu festgelegten Ziel ABI mit -DANDROID_ABI Flagge.

cmake -DCMAKE_TOOLCHAIN_FILE=<NDK path>/build/cmake/android.toolchain.cmake \
  -DANDROID_ABI=arm64-v8a ../tensorflow_src/tensorflow/lite

OpenCL-GPU-Delegierter

Wenn Ihre Zielmaschine OpenCL Unterstützung hat, können Sie GPU delegieren , die Ihre GPU - Leistung nutzen können.

So konfigurieren Sie die OpenCL-GPU-Delegiertenunterstützung:

cmake ../tensorflow_src/tensorflow/lite -DTFLITE_ENABLE_GPU=ON

Schritt 5. TensorFlow Lite erstellen

Im tflite_build-Verzeichnis,

cmake --build . -j

Schritt 6. TensorFlow Lite Benchmark-Tool erstellen und Bildbeispiel beschriften (optional)

Im tflite_build-Verzeichnis,

cmake --build . -j -t benchmark_model
cmake --build . -j -t label_image

Verfügbare Optionen zum Erstellen von TensorFlow Lite

Hier ist die Liste der verfügbaren Optionen. Sie können es überschreiben mit -D<option_name>=[ON|OFF] . Zum Beispiel -DTFLITE_ENABLE_XNNPACK=OFF zu deaktivieren XNNPACK die standardmäßig aktiviert ist.

Optionsname Besonderheit Android Linux Mac OS Fenster
TFLITE_ENABLE_RUY Aktivieren Sie die RUY-Matrix-Multiplikationsbibliothek AN AUS AUS AUS
TFLITE_ENABLE_NNAPI NNAPI-Delegaten aktivieren AN AUS N / A N / A
TFLITE_ENABLE_GPU GPU-Delegaten aktivieren AUS AUS N / A N / A
TFLITE_ENABLE_XNNPACK XNNPACK-Delegaten aktivieren AN AN AN AN
TFLITE_ENABLE_MMAP MMAP aktivieren AN AN AN N / A

Erstellen Sie ein CMake-Projekt, das TensorFlow Lite verwendet

Hier ist die CMakeLists.txt von TFLite minimal Beispiel .

Sie müssen add_subdirectory () für TensorFlow Lite - Verzeichnis und Link haben tensorflow-lite mit target_link_libraries ().

cmake_minimum_required(VERSION 3.16)
project(minimal C CXX)

set(TENSORFLOW_SOURCE_DIR "" CACHE PATH
  "Directory that contains the TensorFlow project" )
if(NOT TENSORFLOW_SOURCE_DIR)
  get_filename_component(TENSORFLOW_SOURCE_DIR
    "${CMAKE_CURRENT_LIST_DIR}/../../../../" ABSOLUTE)
endif()

add_subdirectory(
  "${TENSORFLOW_SOURCE_DIR}/tensorflow/lite"
  "${CMAKE_CURRENT_BINARY_DIR}/tensorflow-lite" EXCLUDE_FROM_ALL)

add_executable(minimal minimal.cc)
target_link_libraries(minimal tensorflow-lite)

TensorFlow Lite C-Bibliothek erstellen

Wenn Sie TensorFlow Lite Shared Library für aufbauen wollen C - API , folgen Sie Schritt 1 bis Schritt 3 zuerst. Führen Sie danach die folgenden Befehle aus.

cmake ../tensorflow_src/tensorflow/lite/c
cmake --build . -j

Dieser Befehl generiert die folgende gemeinsam genutzte Bibliothek im aktuellen Verzeichnis.

Plattform Bibliotheksname
Linux libtensorflowlite_c.so
Mac OS libtensorflowlite_c.dylib
Fenster tensorflowlite_c.dll