Yardım Kaggle üzerinde TensorFlow ile Büyük Bariyer Resifi korumak Meydan Üyelik

CMake ile TensorFlow Lite oluşturun

Bu sayfa oluşturmak ve birlikte TensorFlow Lite kütüphanesini nasıl kullanılacağı açıklanmıştır CKağıt aracı.

Aşağıdaki talimatlar Ubuntu 16.04.3 64 bit PC (AMD64), MacOS Catalina (x86_64), Windows 10 ve TensorFlow devel Docker görüntü üzerinde test edilmiştir devel: tensorflow / tensorflow .

Adım 1. CMake aracını yükleyin

CMake 3.16 veya üstünü gerektirir. Ubuntu'da aşağıdaki komutu basitçe çalıştırabilirsiniz.

sudo apt-get install cmake

Yoksa takip edebilirsiniz resmi cmake kurulum kılavuzu

Adım 2. TensorFlow deposunu klonlayın

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

Adım 3. CMake derleme dizini oluşturun

mkdir tflite_build
cd tflite_build

Adım 4. Konfigürasyonlarla CMake aracını çalıştırın

Sürüm derlemesi

Varsayılan olarak optimize edilmiş bir sürüm ikili dosyası oluşturur. İş istasyonunuz için derleme yapmak istiyorsanız, aşağıdaki komutu çalıştırmanız yeterlidir.

cmake ../tensorflow_src/tensorflow/lite

Hata ayıklama derlemesi

Eğer sembol bilgiler bir hata ayıklama yapı üretmek için gerekiyorsa, sağlamanız gereken -DCMAKE_BUILD_TYPE=Debug seçeneği.

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

Çekirdek birim testleri ile derleme

Çekirdek testlerini çalıştırabilmek için '-DTFLITE_KERNEL_TEST=on' bayrağını sağlamanız gerekir. Birim testi çapraz derleme özellikleri bir sonraki alt bölümde bulunabilir.

cmake ../tensorflow_src/tensorflow/lite -DTFLITE_KERNEL_TEST=on

çapraz derleme

ARM64 veya Android hedef mimarileri için ikili dosyalar oluşturmak için CMake'i kullanabilirsiniz.

TF Lite çapraz derlemeye için, yani birlikte (Android'in durumda örneğin ARM64 SDK veya NDK) SDK yolunu sağlamak için gereken -DCMAKE_TOOLCHAIN_FILE bayrağı.

cmake -DCMAKE_TOOLCHAIN_FILE=<CMakeToolchainFileLoc> ../tensorflow/lite/
Android çapraz derlemesinin özellikleri

Android çapraz derleme için, yüklemeniz gerekir Android NDK ile NDK yolu sağlamak -DCMAKE_TOOLCHAIN_FILE bayrağı yukarıda belirtilen. Ayrıca ile ayarlanan hedef ABI gerek -DANDROID_ABI bayrağı.

cmake -DCMAKE_TOOLCHAIN_FILE=<NDK path>/build/cmake/android.toolchain.cmake \
  -DANDROID_ABI=arm64-v8a ../tensorflow_src/tensorflow/lite
Çekirdek (birim) testleri çapraz derlemenin özellikleri

Birim testlerinin çapraz derlenmesi, ana bilgisayar mimarisi için düz derleyici gerektirir. Bu amaçla, bulunan CMakeLists var tensorflow/lite/tools/cmake/native_tools/flatbuffers konak toolchain kullanarak ayrı yapı dizinde önceden CMake ile flatc derleyici oluşturmak için.

mkdir flatc-native-build && cd flatc-native-build
cmake ../tensorflow_src/tensorflow/lite/tools/cmake/native_tools/flatbuffers
cmake --build .

O (diğer doğal yapılı araçlar yerine CKağıt derleme dizini içeren bir dizine örneğin) bir özel yükleme konumuna flatc yüklemek de mümkündür:

cmake -DCMAKE_INSTALL_PREFIX=<native_tools_dir> ../tensorflow_src/tensorflow/lite/tools/cmake/native_tools/flatbuffers
cmake --build .

TF Lite çapraz derleme kendisi için, ek bir parametre -DTFLITE_HOST_TOOLS_DIR=<flatc_dir_path> ile birlikte temin edilmesi, doğal flatc ikili ihtiyaçlarını içeren dizin işaret -DTFLITE_KERNEL_TEST=on bayrak yukarıda.

cmake -DCMAKE_TOOLCHAIN_FILE=${OE_CMAKE_TOOLCHAIN_FILE} -DTFLITE_KERNEL_TEST=on -DTFLITE_HOST_TOOLS_DIR=<flatc_dir_path> ../tensorflow/lite/

OpenCL GPU temsilcisi

Hedef makine OpenCL desteği varsa, kullanabilirsiniz GPU temsilci GPU gücünden faydalanıyorlar.

OpenCL GPU temsilci desteğini yapılandırmak için:

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

Adım 5. TensorFlow Lite'ı Oluşturun

tflite_build dizininde,

cmake --build . -j

Adım 6. TensorFlow Lite Karşılaştırma Aracı ve Etiket Resmi Örneği Oluşturun (İsteğe Bağlı)

tflite_build dizininde,

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

TensorFlow Lite oluşturmak için Mevcut Seçenekler

İşte mevcut seçeneklerin listesi. Sen bunu geçersiz kılabilirsiniz -D<option_name>=[ON|OFF] . Örneğin, -DTFLITE_ENABLE_XNNPACK=OFF varsayılan olarak etkindir devre dışı XNNPACK için.

Seçenek Adı Özellik Android Linux Mac os işletim sistemi pencereler
TFLITE_ENABLE_RUY RUY matris çarpım kitaplığını etkinleştir ÜZERİNDE KAPALI KAPALI KAPALI
TFLITE_ENABLE_NNAPI NNAPI temsilcisini etkinleştir ÜZERİNDE KAPALI Yok Yok
TFLITE_ENABLE_GPU GPU temsilcisini etkinleştir KAPALI KAPALI Yok Yok
TFLITE_ENABLE_XNNPACK XNNPACK temsilcisini etkinleştir ÜZERİNDE ÜZERİNDE ÜZERİNDE ÜZERİNDE
TFLITE_ENABLE_MMAP MMAP'yi etkinleştir ÜZERİNDE ÜZERİNDE ÜZERİNDE Yok

TensorFlow Lite kullanan bir CMake projesi oluşturun

İşte CMakeLists.txt olan TFLite minimum örnek .

Sen TensorFlow Lite dizin ve bağlantı için add_subdirectory () olması gerekir tensorflow-lite target_link_libraries ile ().

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 kitaplığı oluşturun

Eğer oluşturmak istiyorsanız TensorFlow Lite için kütüphane paylaşılan C API , takip adım 1'de için 3. adıma ilk. Bundan sonra aşağıdaki komutları çalıştırın.

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

Bu komut, geçerli dizinde aşağıdaki paylaşılan kitaplığı oluşturur.

platformu kitaplık adı
Linux libtensorflowlite_c.so
Mac os işletim sistemi libtensorflowlite_c.dylib
pencereler tensorflowlite_c.dll