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ı

TensorFlow Lite ile Android uygulamaları oluşturmaya yönelik kavramları ve kod tasarımını öğrenin, okumaya devam edin .
Quickstart ile hemen bir Android uygulamasını TensorFlow Lite ile kodlamaya başlayın.
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, 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ılır ve model oluşturma, eğitim, test etme veya dönüştürme konuları ele alınmaz. 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ırın

Bir Android uygulamasının içinde çalışan bir TensorFlow Lite modeli, verileri alır, verileri işler ve modelin mantığına dayalı olarak bir tahmin oluşturur. Bir TensorFlow Lite modeli, yürütülebilmesi için özel bir çalışma zamanı ortamı gerektirir ve modele geçirilen veriler, tensör adı verilen belirli bir veri biçiminde olmalıdır. Bir model, çıkarım çalıştırma olarak bilinen verileri işlediğinde, yeni tensörler olarak tahmin sonuçları üretir ve sonucu bir kullanıcıya gösterme veya ek iş mantığı yürütme gibi eylemlerde bulunabilmesi için bunları Android uygulamasına iletir.

Android uygulamalarında 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, bir TensorFlow Lite modelini çalıştırmak için Android uygulamanızın aşağıdaki öğelere ihtiyacı vardır:

  • Modeli yürütmek için TensorFlow Lite çalışma zamanı ortamı
  • Verileri tensörlere dönüştürmek için model girdi işleyicisi
  • Çıktı sonucu tensörlerini almak ve bunları tahmin sonuçları olarak yorumlamak için çıktı işleyiciyi 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üm, Android Uygulamanızda TensorFlow Lite'ı uygulamak için önerilen, en yaygın yolu açıklamaktadır. En çok çalışma zamanı ortamına ve geliştirme kitaplıkları bölümlerine 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 bir çalışma zamanı ortamını etkinleştirmenin birkaç yolu vardır. Bunlar tercih edilen seçeneklerdir:

Genel olarak, dinamik olarak yüklendiğinden ve uygulamanızın boyutunu daha küçük tuttuğundan standart ortama göre daha az yer kapladığı için Google Play hizmetleri tarafından sağlanan çalışma zamanı ortamını kullanmalısınız. Google Play hizmetleri ayrıca otomatik olarak TensorFlow Lite çalışma zamanının en son, kararlı sürümünü kullanır ve size zaman içinde ek özellikler ve iyileştirilmiş performans sunar. Uygulamanızı Google Play hizmetlerini içermeyen cihazlarda sunuyorsanız veya ML ç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 kontrol sahibi olmanızı sağlar.

Uygulama geliştirme ortamınıza TensorFlow Lite geliştirme kitaplıkları ekleyerek bu çalışma zamanı ortamlarına Android uygulamanızda 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:

Yorumlayıcı API , mevcut TensorFlow Lite modelleriyle çıkarımları çalıştırmak için sınıflar ve yöntemler sağlar. TensorFlow Lite Görev API'si , Yorumlayıcı API'sini sarar ve görsel, işitsel ve metin verilerinin işlenmesiyle ilgili yaygın makine öğrenimi görevlerini gerçekleştirmek için daha üst düzey bir programlama arabirimi sağlar. Özel kullanım durumunuzu desteklemediğini anlamadığınız sürece Task API'yi kullanmalısınız.

Kütüphaneler

Google Play hizmetlerini kullanarak Görev API'lerine veya Tercüman API'sine erişebilirsiniz. Ayrıca Android uygulamanızda TensorFlow Lite Görevleri için bağımsız kitaplıkları veya TensorFlow Lite çekirdek ve destek kitaplıklarını da kullanabilirsiniz. TensorFlow Lite kitaplıklarını ve çalışma zamanı ortamlarını kullanma hakkında programlama ayrıntıları için bkz. Android için Geliştirme araçları .

Modelleri edinin

Android uygulamasında bir model çalıştırmak, TensorFlow Lite biçimli bir model gerektirir. Önceden oluşturulmuş modelleri kullanabilir veya TensorFlow ile bir tane oluşturup Lite biçimine dönüştürebilirsiniz. Android uygulamanız için modeller edinme hakkında daha fazla bilgi için TensorFlow Lite Modelleri bölümüne bakın.

Giriş verilerini işle

Bir ML modeline ilettiğiniz 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. Bir modelle verileri işlemek için uygulama kodunuz, görüntü, metin veya ses verileri gibi yerel biçimindeki verileri modeliniz için gerekli biçimde bir tensöre dönüştürmelidir.

TensorFlow Lite Görev kitaplığı , görsel, metin ve ses verilerini bir 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 bir model aracılığıyla verilerin işlenmesi, bir çıkarımın çalıştırılması olarak bilinir. Bir Android uygulamasında bir çıkarımı çalıştırmak, bir TensorFlow Lite çalışma zamanı ortamı , bir model ve girdi verileri gerektirir.

Bir modelin belirli bir cihaz üzerinde bir çıkarım oluşturma hızı, işlenen verilerin boyutuna, modelin karmaşıklığına ve bellek ve CPU gibi kullanılabilir bilgi işlem kaynaklarına veya hızlandırıcılar olarak adlandırılan özel işlemcilere bağlıdır. Makine öğrenimi modelleri, delegeler 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. Delegeler ve model işlemenin donanım hızlandırması hakkında daha fazla bilgi için Donanım hızlandırmaya genel bakış bölümüne bakın.

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

Modeller, eylem gerçekleştirerek veya kullanıcıya bir sonuç görüntüleyerek Android uygulamanız tarafından 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 olabilir; 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 modelleri kullanırken, yukarıda açıklananlardan daha gelişmiş geliştirme yaklaşımları kullanmanız gerekebilir. Aşağıdaki bölümlerde, modelleri yürütmek ve bunları Android uygulamalarında TensorFlow Lite için geliştirmek için 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ı vardır. Bu ortamlar için en olası kullanım, TensorFlow Lite için 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 eklemenize 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 kullanıyorsa bu API'yi kullanmayı düşünmelisiniz. Birden çok 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üresi ve iyileştirilmiş veri gizliliğinden yararlanmak için uygulamanızdaki modelleri bir Android cihazda çalıştırmalısınız. Ancak, bir bulut sunucusunda, cihaz dışında bir model ç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 bir boyuta kolayca 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 önceliğe sahipse, bu yaklaşım da tercih ettiğiniz çözüm 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ının, özel makine öğrenimi modelleri geliştirmeyi ve bu modelleri Android cihazlarda kullanım için optimize etmeyi içermesi muhtemeldir. Özel modeller oluşturmayı planlıyorsanız, bellek ve işlem maliyetlerini azaltmak için modellere niceleme teknikleri uygulamayı düşündüğünüzden emin olun. TensorFlow Lite ile kullanım için yüksek performanslı modellerin nasıl oluşturulacağı hakkında daha fazla bilgi için Modeller bölümündeki Performansla ilgili en iyi uygulamalara bakın.

Sonraki adımlar