Bu dokümanda, cihazınızda LiteRT Android kitaplığını nasıl oluşturacağınız açıklanmaktadır. sahip. Normalde LiteRT Android kitaplığını yerel olarak oluşturmanız gerekmez.
Gecelik Anlık Görüntüleri kullanma
Gecelik anlık görüntüleri kullanmak için aşağıdaki depoyu kök Gradle derlemenize ekleyin yapılandırma.
allprojects {
repositories { // should be already there
mavenCentral() // should be already there
maven { // add this repo to use snapshots
name 'ossrh-snapshot'
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
}
}
Build.gradle dosyanıza bağımlılıklara gecelik anlık görüntüler ekleyin (veya gerektiği şekilde düzenleyin)
...
dependencies {
...
implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly-SNAPSHOT'
implementation 'com.google.ai.edge.litert:litert-gpu:0.0.0-nightly-SNAPSHOT'
implementation 'com.google.ai.edge.litert:litert-support:0.0.0-nightly-SNAPSHOT'
...
}
...
Yerel olarak LiteRT oluşturun
Bazı durumlarda, LiteRT'in yerel bir derlemesini kullanmak isteyebilirsiniz. Örneğin, Örneğin, şunları içeren özel bir ikili program derliyor olabilirsiniz: TensorFlow'dan seçilen işlemleri, veya LiteRT'te yerel değişiklikler yapmak isteyebilirsiniz.
Docker'ı kullanarak derleme ortamı oluşturma
- Docker dosyasını indirin. Docker dosyasını indirerek kullanımınız aşağıdaki hizmet şartlarına tabidir:
Kabul et seçeneğini tıklayarak Android Studio ve Android Yerel Geliştirme Kiti, Android Yazılımı'na tabi olacaktır Geliştirme Kiti Lisans Sözleşmesi şu adreste bulunabilir: https://developer.android.com/studio/terms (bu tür URL güncellenebilir veya değiştirilebilir) zaman zaman Google tarafından kullanılabilir).
. Uygulamayı indirmek için hizmet şartlarını kabul etmelisiniz. dosyası olarak kaydedebilirsiniz.- İsterseniz Android SDK veya NDK sürümünü değiştirebilirsiniz. İndirilen dosyayı Docker dosyasını boş bir klasöre yerleştirin ve Docker görüntünüzü aşağıdaki komutu çalıştırarak oluşturun:
docker build . -t tflite-builder -f tflite-android.Dockerfile
- Mevcut klasörünüzü /host_dir örneğidir (/tensorflow_src öğesinin, TensorFlow olduğunu unutmayın. şu depoyu kullanın):
docker run -it -v $PWD:/host_dir tflite-builder bash
Windows'da TPU'yu kullanıyorsanız "$PWD" komutunu değiştirin "pwd" ile değiştirin.
Ana makinede bir TensorFlow deposu kullanmak istiyorsanız bu ana makineyi ekleyin dizinine ekleyin (-v hostsDir:/host_dir).
- Kapsayıcıya girdikten sonra aşağıdaki komutu çalıştırarak ek Android araçları ve kitaplıkları ( lisans):
sdkmanager \
"build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
"platform-tools" \
"platforms;android-${ANDROID_API_LEVEL}"
Şimdi derleme ayarlarını yapılandırmak için WORKSPACE ve .bazelrc'i yapılandırma bölümüne geçmeniz gerekir.
Kitaplıkları oluşturmayı tamamladıktan sonra /host_dir konumuna kopyalayabilirsiniz. kapsayıcının içine yerleştirin. Böylece, bu öğelere ana makineden erişebilirsiniz.
Docker olmadan derleme ortamı kurma
Bazel ve Android Ön Koşullarını Yükleme
Bazel, TensorFlow için birincil derleme sistemidir. Onunla inşa etmek için sisteminizde Android NDK ve SDK yüklü olmalıdır.
- Bazel derleme sisteminin en son sürümünü yükleyin.
- Yerel (C/C++) LiteRT oluşturmak için Android NDK gerekir girin. Önerilen mevcut sürüm 25b'dir ve burada bulabilirsiniz.
- Android SDK ve derleme araçları edinilebilir burada veya alternatif olarak Android Studio'ya gidin. Derleme Tools API >= 23, LiteRT oluşturmak için önerilen sürümdür.
WORKSPACE ve .bazelrc'i yapılandırın
Bu, LiteRT oluşturmak için gerekli olan tek seferlik bir yapılandırma adımıdır.
kitaplıklar. Kök TensorFlow ödeme sayfasında ./configure
komut dosyasını çalıştırın
bulun ve "Evet" yanıtını verin komut dosyası, ./WORKSPACE
öğesini etkileşimli olarak yapılandırmak istediğinde
kullanıma sunuyoruz. Komut dosyası,
şu ortam değişkenlerini kullanabilirsiniz:
ANDROID_SDK_HOME
ANDROID_SDK_API_LEVEL
ANDROID_NDK_HOME
ANDROID_NDK_API_LEVEL
Bu değişkenler ayarlanmazsa komut dosyasında etkileşimli olarak sağlanmalıdırlar.
tıklayın. Başarılı yapılandırma, aşağıdakine benzer girişler sağlamalıdır:
kök klasördeki .tf_configure.bazelrc
dosyasında:
build --action_env ANDROID_NDK_HOME="/usr/local/android/android-ndk-r25b"
build --action_env ANDROID_NDK_API_LEVEL="21"
build --action_env ANDROID_BUILD_TOOLS_VERSION="30.0.3"
build --action_env ANDROID_SDK_API_LEVEL="30"
build --action_env ANDROID_SDK_HOME="/usr/local/android/android-sdk-linux"
Geliştirme ve yükleme
Bazel doğru şekilde yapılandırıldıktan sonra LiteRT AAR'sini kök ödeme dizinini şu şekilde açın:
bazel build -c opt --cxxopt=--std=c++17 --config=android_arm64 \
--fat_apk_cpu=x86,x86_64,arm64-v8a,armeabi-v7a \
--define=android_dexmerger_tool=d8_dexmerger \
--define=android_incremental_dexing_tool=d8_dexbuilder \
//tensorflow/lite/java:tensorflow-lite
Bu işlem, bazel-bin/tensorflow/lite/java/
içinde bir AAR dosyası oluşturur. Not
bir "şişman" olup olmadığını Birkaç farklı mimariye sahip AAR; CANNOT TRANSLATE
dağıtım ortamınıza uygun olan alt kümeyi kullanın.
Aşağıdaki gibi, yalnızca bir model grubunu hedefleyen daha küçük AAR dosyaları oluşturabilirsiniz:
bash tensorflow/lite/tools/build_aar.sh \
--input_models=model1,model2 \
--target_archs=x86,x86_64,arm64-v8a,armeabi-v7a
Yukarıdaki komut dosyası, tensorflow-lite.aar
dosyasını ve isteğe bağlı olarak
tensorflow-lite-select-tf-ops.aar
dosyasını kullanarak modellerden birinde
Tensorflow operasyonları Daha fazla bilgi için lütfen
LiRT ikili boyutunu küçültme bölümü.
AAR'yi doğrudan projeye ekleyin
tensorflow-lite.aar
dosyasını libs
adlı dizindeki
belirler. Uygulamanızın build.gradle
dosyasını yeni dizine referans verecek şekilde değiştirin
mevcut LiteRT bağımlılığını yeni yerel kitaplıkla
değiştirebilirsiniz.
e.g.:
allprojects {
repositories {
mavenCentral()
maven { // Only for snapshot artifacts
name 'ossrh-snapshot'
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile(name:'tensorflow-lite', ext:'aar')
}
AAR'yi yerel Maven deposuna yükleme
Kök ödeme 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
öğesinde mavenLocal()
bağımlılığının olduğundan emin olun ve
standart LiteRT bağımlılığını destekleyen bir bağımlıyla değiştirin
belirli TensorFlow işlemleri için:
allprojects {
repositories {
mavenCentral()
maven { // Only for snapshot artifacts
name 'ossrh-snapshot'
url 'https://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 salt kullanım amaçlı olduğunu unutmayın
test etme/geliştirme. Yerel AAR yüklendiğinde,
Uygulama kodunuzdaki LiteRT Java çıkarım API'leri.