Android için TensorFlow Lite

TensorFlow Lite, Android uygulamalarınızda TensorFlow makine öğrenimi (ML) modellerini çalıştırmanıza olanak tanır. TensorFlow Lite sistemi, donanım hızlandırma seçenekleri de dahil olmak üzere Android'de modelleri hızlı ve verimli bir şekilde çalıştırmak için önceden oluşturulmuş ve özelleştirilebilir yürütme ortamları sağlar.

Öğrenme yol haritası

Kod tasarımı TensorFlow Lite ile Android uygulamaları oluşturmaya yönelik kavramları ve kod tasarımını öğrenin, okumaya devam edin .
Kod Hızlı Başlangıç Hızlı Başlangıç ​​ile hemen TensorFlow Lite ile bir Android uygulamasını kodlamaya başlayın.
Makine öğrenimi modelleri TensorFlow Lite ile ML modellerini seçme ve kullanma hakkında bilgi edinin, Modeller belgelerine bakın.

Makine öğrenimi modelleri

TensorFlow Lite, daha küçük, taşınabilir ve daha verimli bir makine öğrenimi modeli formatına dönüştürülen TensorFlow modellerini kullanır. Android'de TensorFlow Lite ile önceden oluşturulmuş modelleri kullanabilir veya kendi TensorFlow modellerinizi oluşturup bunları TensorFlow Lite formatına dönüştürebilirsiniz.

Bu sayfada önceden oluşturulmuş makine öğrenimi modellerinin kullanımı anlatılmaktadır ve model oluşturma, eğitim, test etme veya dönüştürme işlemleri ele alınmamaktadır. Modeller bölümünde TensorFlow Lite için makine öğrenimi modellerini seçme, değiştirme, oluşturma ve dönüştürme hakkında daha fazla bilgi edinin.

Modelleri Android'de çalıştırma

Bir Android uygulamasının içinde çalışan TensorFlow Lite modeli verileri alır, verileri işler ve modelin mantığına dayalı bir tahmin oluşturur. Bir TensorFlow Lite modelinin yürütülebilmesi için özel bir çalışma zamanı ortamı gerekir ve modele aktarılan verilerin tensör adı verilen belirli bir veri formatında olması gerekir. Bir model, çıkarım çalıştırma olarak bilinen verileri işlediğinde, yeni tensörler olarak tahmin sonuçları üretir ve bunları Android uygulamasına aktararak sonucu kullanıcıya gösterme veya ek iş mantığı yürütme gibi işlemler gerçekleştirebilir.

Android uygulamalarındaki TensorFlow Lite modelleri için işlevsel yürütme akışı

Şekil 1. Android uygulamalarındaki TensorFlow Lite modelleri için işlevsel yürütme akışı.

İşlevsel tasarım düzeyinde, Android uygulamanızın TensorFlow Lite modelini çalıştırabilmesi için aşağıdaki öğelere ihtiyacı vardır:

  • Modelin yürütülmesi için TensorFlow Lite çalışma zamanı ortamı
  • Verileri tensörlere dönüştürmek için giriş işleyicisini modelleyin
  • Çıkış sonucu tensörlerini almak ve bunları tahmin sonuçları olarak yorumlamak için çıkış işleyicisini modelleyin

Aşağıdaki bölümlerde TensorFlow Lite kitaplıklarının ve araçlarının bu işlevsel öğeleri nasıl sağladığı açıklanmaktadır.

TensorFlow Lite ile uygulamalar oluşturun

Bu bölümde TensorFlow Lite'ı Android Uygulamanıza uygulamak için önerilen, en yaygın yol açıklanmaktadır. Çalışma zamanı ortamı ve geliştirme kitaplıkları bölümlerine en çok dikkat etmelisiniz. Özel bir model geliştirdiyseniz Gelişmiş geliştirme yolları bölümünü mutlaka inceleyin.

Çalışma zamanı ortamı seçenekleri

Android uygulamanızda modelleri yürütmek için çalışma zamanı ortamını etkinleştirmenin birkaç yolu vardır. Bunlar tercih edilen seçeneklerdir:

Genel olarak Google Play hizmetleri tarafından sağlanan çalışma zamanı ortamını kullanmalısınız çünkü dinamik olarak yüklendiğinden ve uygulama boyutunuzu daha küçük tuttuğundan standart ortama göre alan açısından daha verimlidir. Google Play hizmetleri ayrıca otomatik olarak TensorFlow Lite çalışma zamanının en güncel ve kararlı sürümünü kullanarak size zaman içinde ek özellikler ve gelişmiş performans sunar. Uygulamanızı Google Play hizmetlerini içermeyen cihazlarda sunuyorsanız veya makine öğrenimi çalışma zamanı ortamınızı yakından yönetmeniz gerekiyorsa standart TensorFlow Lite çalışma zamanını kullanmalısınız. Bu seçenek, uygulamanıza ek kod ekleyerek uygulamanızın indirme boyutunu artırma pahasına uygulamanızdaki makine öğrenimi çalışma zamanı üzerinde daha fazla kontrole sahip olmanızı sağlar.

Bu çalışma zamanı ortamlarına Android uygulamanızdan TensorFlow Lite geliştirme kitaplıklarını uygulama geliştirme ortamınıza ekleyerek erişebilirsiniz. Uygulamanızda standart çalışma zamanı ortamlarının nasıl kullanılacağı hakkında bilgi için sonraki bölüme bakın.

Geliştirme API'leri ve kitaplıkları

TensorFlow Lite makine öğrenimi modellerini Android uygulamanıza entegre etmek için kullanabileceğiniz iki ana API vardır:

Interpreter API, mevcut TensorFlow Lite modelleriyle çıkarımlar yürütmek için sınıflar ve yöntemler sağlar. TensorFlow Lite Görev API'si, Interpreter API'yi sarar ve görsel, işitsel ve metin verilerinin işlenmesinde yaygın makine öğrenimi görevlerini gerçekleştirmek için daha yüksek düzeyde bir programlama arayüzü sağlar. Özel kullanım durumunuzu desteklemediğini düşünmediğiniz sürece Görev API'sini kullanmalısınız.

Kütüphaneler

Google Play hizmetlerini kullanarak Görev API'lerine veya Tercüman API'sine erişebilirsiniz. Ayrıca TensorFlow Lite Görevleri için bağımsız kitaplıkları veya Android uygulamanızdaki TensorFlow Lite çekirdeğini ve destek kitaplıklarını da kullanabilirsiniz. TensorFlow Lite kitaplıklarının ve çalışma zamanı ortamlarının kullanımına ilişkin programlama ayrıntıları için bkz. Android için geliştirme araçları .

Modelleri edinin

Bir modeli bir Android uygulamasında çalıştırmak, TensorFlow Lite biçiminde bir model gerektirir. Önceden oluşturulmuş modelleri kullanabilir veya TensorFlow ile bir model oluşturup Lite formatına dönüştürebilirsiniz. Android uygulamanıza yönelik modelleri edinme konusunda daha fazla bilgi için TensorFlow Lite Modelleri bölümüne bakın.

Giriş verilerini işleme

Bir ML modeline aktardığınız herhangi bir veri, genellikle tensörün şekli olarak adlandırılan, belirli bir veri yapısına sahip bir tensör olmalıdır. Verileri bir modelle işlemek için uygulama kodunuzun, verileri resim, metin veya ses verileri gibi yerel biçiminden modeliniz için gereken şekilde bir tensöre dönüştürmesi gerekir.

TensorFlow Lite Görev kitaplığı, görsel, metin ve ses verilerini TensorFlow Lite modeli tarafından işlenecek doğru şekle sahip tensörlere dönüştürmek için veri işleme mantığı sağlar.

Çıkarımları çalıştır

Bir tahmin sonucu oluşturmak için verileri bir model aracılığıyla işlemek, çıkarım yapmak olarak bilinir. Bir Android uygulamasında çıkarımın çalıştırılması, TensorFlow Lite çalışma zamanı ortamını , bir modeli ve giriş verilerini gerektirir.

Bir modelin belirli bir cihaz üzerinde çıkarım üretme hızı, işlenen verinin boyutuna, modelin karmaşıklığına ve bellek ve CPU gibi mevcut bilgi işlem kaynaklarına veya hızlandırıcılar adı verilen özel işlemcilere bağlıdır. Makine öğrenimi modelleri, delege adı verilen TensorFlow Lite donanım sürücülerini kullanarak grafik işleme birimleri (GPU'lar) ve tensör işleme birimleri (TPU'lar) gibi bu özel işlemcilerde daha hızlı çalışabilir. Temsilciler ve model işlemenin donanım hızlandırması hakkında daha fazla bilgi için Donanım hızlandırmaya genel bakış konusuna bakın.

Çıktı sonuçlarını işleme

Modeller, Android uygulamanız tarafından harekete geçerek veya kullanıcıya bir sonuç görüntüleyerek işlenmesi gereken tensörler olarak tahmin sonuçları üretir. Model çıktı sonuçları, bir görüntü sınıflandırması için tek bir sonuca (0 = köpek, 1 = kedi, 2 = kuş) karşılık gelen bir sayı kadar basit olabileceği gibi, bir görüntü sınıflandırmasındaki çeşitli sınıflandırılmış nesneler için çoklu sınırlayıcı kutular gibi çok daha karmaşık sonuçlara da ulaşabilir. 0 ile 1 arasında tahmin güven derecesine sahip görüntü.

Gelişmiş geliştirme yolları

Daha karmaşık ve özelleştirilmiş TensorFlow Lite modellerini kullanırken yukarıda açıklananlardan daha gelişmiş geliştirme yaklaşımları kullanmanız gerekebilir. Aşağıdaki bölümlerde, Android uygulamalarında TensorFlow Lite için modellerin yürütülmesine ve geliştirilmesine yönelik gelişmiş teknikler açıklanmaktadır.

Gelişmiş çalışma zamanı ortamları

TensorFlow Lite için standart çalışma zamanı ve Google Play hizmetleri çalışma zamanı ortamlarına ek olarak, Android uygulamanızla kullanabileceğiniz ek çalışma zamanı ortamları da vardır. Bu ortamların en olası kullanımı, TensorFlow Lite'ın standart çalışma zamanı ortamı tarafından desteklenmeyen ML işlemlerini kullanan bir makine öğrenimi modeliniz olmasıdır.

TensorFlow Lite Flex çalışma zamanı, modeliniz için gereken belirli operatörleri dahil etmenize olanak tanır. Modelinizi çalıştırmak için gelişmiş bir seçenek olarak, TensorFlow makine öğrenimi modelinizi çalıştırmak için gereken operatörleri ve diğer işlevleri içerecek şekilde Android için TensorFlow Lite oluşturabilirsiniz. Daha fazla bilgi için bkz . Android için TensorFlow Lite Oluşturma .

C ve C++ API'leri

TensorFlow Lite ayrıca C ve C++ kullanan modelleri çalıştırmak için bir API sağlar. Uygulamanız Android NDK'yı kullanıyorsa bu API'yi kullanmayı düşünmelisiniz. Birden fazla platform arasında kod paylaşabilmek istiyorsanız bu API'yi kullanmayı da düşünebilirsiniz. Bu geliştirme seçeneği hakkında daha fazla bilgi için Geliştirme araçları sayfasına bakın.

Sunucu tabanlı model yürütme

Genel olarak, kullanıcılarınız için daha düşük gecikme süresinden ve gelişmiş veri gizliliğinden yararlanmak için uygulamanızdaki modelleri bir Android cihazda çalıştırmalısınız. Ancak bir modeli cihaz dışında bir bulut sunucusunda çalıştırmanın daha iyi bir çözüm olduğu durumlar vardır. Örneğin, kullanıcılarınızın Android cihazlarına sığacak boyuta kolaylıkla sıkıştırılamayan veya bu cihazlarda makul bir performansla çalıştırılabilen büyük bir modeliniz varsa. Modelin geniş bir cihaz yelpazesinde tutarlı performansı birinci öncelikse bu yaklaşım, tercih ettiğiniz çözüm de olabilir.

Google Cloud, TensorFlow makine öğrenimi modellerini çalıştırmak için eksiksiz bir hizmet paketi sunar. Daha fazla bilgi için Google Cloud'un yapay zeka ve makine öğrenimi ürünleri sayfasına bakın.

Özel model geliştirme ve optimizasyon

Daha gelişmiş geliştirme yolları muhtemelen özel makine öğrenimi modelleri geliştirmeyi ve bu modelleri Android cihazlarda kullanım için optimize etmeyi içerecektir. Özel modeller oluşturmayı planlıyorsanız bellek ve işlem maliyetlerini azaltmak için modellere niceleme tekniklerini uygulamayı değerlendirdiğinizden emin olun. TensorFlow Lite ile kullanılacak yüksek performanslı modellerin nasıl oluşturulacağı hakkında daha fazla bilgi için Modeller bölümündeki Performans en iyi uygulamalarına bakın.

Sonraki adımlar