Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Android için TensorFlow Lite'ı oluşturun

Bu belge, TensorFlow Lite Android kitaplığını kendi başınıza nasıl oluşturacağınızı açıklar. Normalde, TensorFlow Lite Android kitaplığını yerel olarak oluşturmanıza gerek yoktur. Sadece kullanmak istiyorsanız, en kolay yol JCenter'da barındırılan TensorFlow Lite AAR'ı kullanmaktır . Bunları Android projelerinizde nasıl kullanacağınızla ilgili daha fazla ayrıntı için Android hızlı başlangıç ​​belgesine bakın.

TensorFlow Lite'ı yerel olarak oluşturun

Bazı durumlarda, yerel bir TensorFlow Lite yapısı kullanmak isteyebilirsiniz. Örneğin, TensorFlow'dan seçilen işlemleri içeren özel bir ikili dosya oluşturuyor olabilirsiniz veya TensorFlow Lite'ta yerel değişiklikler yapmak isteyebilirsiniz.

Docker kullanarak derleme ortamını ayarlayın

  • Docker dosyasını indirin. Docker dosyasını indirerek, kullanımınızı aşağıdaki hizmet şartlarının yönettiğini kabul etmiş olursunuz:

Kabul etmek için tıklayarak, Android Studio ve Android Yerel Geliştirme Kitinin tüm kullanımının https://developer.android.com/studio/terms adresinde bulunan Android Yazılım Geliştirme Kiti Lisans Sözleşmesine tabi olacağını kabul etmiş olursunuz (bu tür URL Google tarafından zaman zaman güncellenebilir veya değiştirilebilir).

Dosyayı indirmek için hizmet şartlarını kabul etmelisiniz. tanındıktan

  • İsteğe bağlı olarak Android SDK veya NDK sürümünü değiştirebilirsiniz. İndirilen Docker dosyasını boş bir klasöre koyun ve aşağıdakileri çalıştırarak docker imajınızı oluşturun:
docker build . -t tflite-builder -f tflite-android.Dockerfile
  • Mevcut klasörünüzü konteynerin içinde / tmp'ye bağlayarak docker konteynerini etkileşimli olarak başlatın (/ tensorflow_src'nin konteynerin içindeki TensorFlow deposu olduğunu unutmayın):
docker run -it -v $PWD:/tmp tflite-builder bash

Windows'ta PowerShell kullanıyorsanız, "$ PWD" yi "pwd" ile değiştirin.

Ana bilgisayarda bir TensorFlow deposu kullanmak isterseniz, bunun yerine o ana bilgisayar dizinini bağlayın (-v hostDir: / tmp).

  • Konteynırın içine girdikten sonra, ek Android araçlarını ve kitaplıklarını indirmek için aşağıdakileri çalıştırabilirsiniz (lisansı kabul etmeniz gerekebileceğini unutmayın):
android update sdk --no-ui -a --filter tools,platform-tools,android-${ANDROID_API_LEVEL},build-tools-${ANDROID_BUILD_TOOLS_VERSION}

Artık "Oluştur ve Kur" bölümüne geçebilirsiniz. Kitaplıkları oluşturmayı bitirdikten sonra, bunları ana bilgisayardan erişebilmek için konteynerin içindeki / tmp klasörüne kopyalayabilirsiniz.

Docker olmadan derleme ortamını kurun

Bazel ve Android Ön Koşullarını Yükleyin

Bazel, TensorFlow için birincil yapı sistemidir. Onunla inşa etmek için, sisteminizde yüklü Android NDK ve SDK'ya sahip olmanız gerekir.

  1. Bazel derleme sisteminin en son sürümünü yükleyin.
  2. Yerel (C / C ++) TensorFlow Lite kodunu oluşturmak için Android NDK gereklidir. Önerilen geçerli sürümü bulunabilir 17c vardır burada .
  3. Android SDK ve derleme araçları buradan veya alternatif olarak Android Studio'nun bir parçası olarak edinilebilir. Derleme araçları API'si> = 23, TensorFlow Lite'ı oluşturmak için önerilen sürümdür.

ÇALIŞMA ALANI ve .bazelrc'yi yapılandırın

Run ./configure kök TensorFlow çıkış dizinde komut ve komut dosyası etkileşimli yapılandırmak istediğinde cevap "Evet" ./WORKSPACE Android inşa için. Komut dosyası, aşağıdaki ortam değişkenlerini kullanarak ayarları yapılandırmaya çalışacaktır:

  • ANDROID_SDK_HOME
  • ANDROID_SDK_API_LEVEL
  • ANDROID_NDK_HOME
  • ANDROID_NDK_API_LEVEL

Bu değişkenler ayarlanmazsa, komut isteminde etkileşimli olarak sağlanmaları gerekir. Başarılı yapılandırma, kök klasördeki .tf_configure.bazelrc dosyasında aşağıdakilere benzer girdiler .tf_configure.bazelrc :

build --action_env ANDROID_NDK_HOME="/usr/local/android/android-ndk-r17c"
build --action_env ANDROID_NDK_API_LEVEL="21"
build --action_env ANDROID_BUILD_TOOLS_VERSION="28.0.3"
build --action_env ANDROID_SDK_API_LEVEL="23"
build --action_env ANDROID_SDK_HOME="/usr/local/android/android-sdk-linux"

Derleyin ve kurun

Bazel doğru bir şekilde yapılandırıldıktan sonra, TensorFlow Lite AAR'ı kök kontrol dizininden aşağıdaki şekilde oluşturabilirsiniz:

bazel build -c opt --fat_apk_cpu=x86,x86_64,arm64-v8a,armeabi-v7a \
  --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
  //tensorflow/lite/java:tensorflow-lite

Bu, bazel-bin/tensorflow/lite/java/ içinde bir AAR dosyası oluşturacaktır. Bunun birkaç farklı mimariye sahip "şişman" bir AAR oluşturduğuna dikkat edin; hepsine ihtiyacınız yoksa, dağıtım ortamınıza uygun alt kümeyi kullanın.

bash tensorflow/lite/tools/build_aar.sh \
  --input_models=model1,model2 \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a

Yukarıdaki komut dosyası, modellerden biri Tensorflow işlemlerini kullanıyorsa tensorflow tensorflow-lite.aar dosyasını ve isteğe bağlı olarak tensorflow-lite-select-tf-ops.aar dosyasını oluşturacaktır. Daha fazla ayrıntı için lütfen TensorFlow Lite ikili boyutunu Azaltma bölümüne bakın.

AAR'yi doğrudan projeye ekleyin

tensorflow-lite.aar dosyasını projenizde libs adlı bir dizine taşıyın. Uygulamanızın build.gradle dosyasını yeni dizine başvuracak şekilde değiştirin ve mevcut TensorFlow Lite bağımlılığını yeni yerel kitaplıkla değiştirin, örn:

allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

dependencies {
    compile(name:'tensorflow-lite', ext:'aar')
}

AAR'yi yerel Maven deposuna yükleyin

Kök kontrol dizininizden aşağıdaki komutu yürütün:

mvn install:install-file \
  -Dfile=bazel-bin/tensorflow/lite/java/tensorflow-lite.aar \
  -DgroupId=org.tensorflow \
  -DartifactId=tensorflow-lite -Dversion=0.1.100 -Dpackaging=aar

Uygulamanızın build.gradle mavenLocal() bağımlılığına sahip olduğunuzdan emin olun ve standart TensorFlow Lite bağımlılığını belirli TensorFlow işlemlerini destekleyen bir bağımlılıkla değiştirin:

allprojects {
    repositories {
        jcenter()
        mavenLocal()
    }
}

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.1.100'
}

Buradaki 0.1.100 sürümünün tamamen test / geliştirme amaçlı olduğunu unutmayın. Yerel AAR yüklüyken, uygulama kodunuzda standart TensorFlow Lite Java çıkarım API'lerini kullanabilirsiniz.