Google I / O'daki önemli notları, ürün oturumlarını, atölyeleri ve daha fazlasını izleyin Oynatma listesine bakın

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ız gerekmez. Sadece kullanmak istiyorsanız, en kolay yol MavenCentral'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.

Gece Anlık Görüntüleri Kullanın

Gece anlık görüntüleri kullanmak için, aşağıdaki depoyu kök Gradle derleme yapılandırmanıza ekleyin.

allprojects {     // should be already there
    mavenCentral  // should be already there
    maven {       // add this repo to use snapshots
      name 'ossrh-snapshot'
      url 'http://oss.sonatype.org/content/repositories/snapshots'
    }
}

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ı kurun

  • 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 bir URL, Google tarafından zaman zaman güncellenebilir veya değiştirilebilir).

Dosyayı indirmek için hizmet şartlarını kabul etmelisiniz. Onay

  • İ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çindeki / host_dir'e 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:/host_dir 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 ana bilgisayarDirisi: / ana bilgisayar_dizini).

  • Kapsayıcıya 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şebilmeniz için kapsayıcı içindeki / host_dir klasörüne kopyalayabilirsiniz.

Docker olmadan derleme ortamı 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 19c 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 ayarlanmadıysa, 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ğıdakine benzer girdiler .tf_configure.bazelrc :

build --action_env ANDROID_NDK_HOME="/usr/local/android/android-ndk-r19c"
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. Yeni dizine build.gradle için uygulamanızın build.gradle dosyasını değiştirin ve mevcut TensorFlow Lite bağımlılığını yeni yerel kitaplıkla değiştirin, örneğin:

allprojects {
    repositories {
        mavenCentral()
        maven {  // Only for snapshot artifacts
            name 'ossrh-snapshot'
            url 'http://oss.sonatype.org/content/repositories/snapshots'
        }
        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 {
        mavenCentral()
        maven {  // Only for snapshot artifacts
            name 'ossrh-snapshot'
            url 'http://oss.sonatype.org/content/repositories/snapshots'
        }
        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.