Android için TensorFlow Lite

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

Makine öğrenimi modelleri

TensorFlow Lite, daha küçük, taşınabilir ve daha verimli bir makine öğrenimi modeli biçimine 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 biçimine dönüştürebilirsiniz.

Bu sayfada, önceden oluşturulmuş makine öğrenimi modellerinin kullanımı ele alınmaktadır ve modelleri oluşturma, eğitme, test etme veya dönüştürme konularını ele almamaktadır. Modeller sayfasında TensorFlow Lite için makine öğrenimi modellerini seçme, değiştirme, oluşturma ve dönüştürme hakkında daha fazla bilgi edinebilirsiniz.

Modelleri Android'de çalıştırma

Android uygulaması içinde çalışan TensorFlow Lite modeli verileri alır, işler ve modelin mantığına dayalı bir tahmin oluşturur. TensorFlow Lite modelinin yürütülebilmesi için özel bir çalışma zamanı ortamı gerekir. Ayrıca modele aktarılan verilerin tensör adı verilen belirli bir veri biçiminde olması gerekir. Bir model, çıkarım çalıştırmak olarak da bilinen verileri işlediğinde yeni tensörler olarak tahmin sonuçları oluşturur ve sonucu kullanıcıya göstermek veya ek iş mantığı yürütmek gibi işlemler için 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, Android uygulamanızın TensorFlow Lite modelini çalıştırmak için 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 giriş işleyicisi
  • Çıkış sonucu tensörlerini almak ve bunları tahmin sonuçları olarak yorumlamak için Model çıkış işleyici

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 uygulama oluşturma

Bu bölümde, Android Uygulamanızda TensorFlow Lite'ı uygulamak için önerilen, en yaygın olarak kullanılan yol açıklanmaktadır. En çok dikkat etmeniz gereken, çalışma zamanı ortamı ve geliştirme kitaplıkları bölümlerine dikkat etmektir. Özel model geliştirdiyseniz Gelişmiş geliştirme yolları bölümünü incelediğinizden emin olun.

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

Android uygulamanızdaki modelleri çalıştırmak için bir çalışma zamanı ortamını etkinleştirmenin birkaç yolu vardır. Tercih edilen seçenekler şunlardır:

Genel olarak, Google Play hizmetleri tarafından sağlanan çalışma zamanı ortamını kullanmalısınız. Standart ortam dinamik olarak yüklendiğinden ve uygulamanızın boyutunu daha küçük tuttuğundan bu ortam standart ortamdan daha az yer kaplar. Google Play Hizmetleri ayrıca TensorFlow Lite çalışma zamanının en son ve kararlı sürümünü otomatik olarak kullanarak zaman içinde ek özellikler sunar ve performansı iyileştirir. Uygulamanızı Google Play Hizmetleri 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 ekler ve uygulamanızın indirme boyutunu artırırken uygulamanızdaki ML çalışma zamanı üzerinde daha fazla kontrole sahip olmanızı sağlar.

Bu çalışma zamanı ortamlarına Android uygulamanızdaki TensorFlow Lite geliştirme kitaplıklarını ekleyerek uygulama geliştirme ortamınıza erişebilirsiniz. Standart çalışma zamanı ortamlarını uygulamanızda kullanma hakkında bilgi için sonraki bölüme bakın.

Kütüphaneler

Translateer API'ye Google Play hizmetlerini kullanarak erişebilirsiniz. Android uygulamanızda TensorFlow Lite core ve support kitaplıklarını kullanabilirsiniz. TensorFlow Lite kitaplıklarını ve çalışma zamanı ortamlarını kullanmayla ilgili programlama ayrıntıları için Android için geliştirme araçları bölümüne bakın.

Modeller edinme

Android uygulamasında model çalıştırmak için TensorFlow Lite biçimli model gerekir. Önceden oluşturulmuş modelleri kullanabilir veya TensorFlow ile bir model oluşturup Lite biçimine dönüştürebilirsiniz. Android uygulamanız için model edinme hakkında daha fazla bilgi için TensorFlow Lite Modelleri sayfasına bakın.

Giriş verilerini işleme

ML modeline geçirdiğiniz tüm veriler, genellikle tensör ş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 resim, metin veya ses verileri gibi yerel biçimindeki verileri modeliniz için gereken şekilde bir tensöre dönüştürmesi gerekir.

Çıkarım yap

Tahmin sonucu oluşturmak için verilerin bir model aracılığıyla işlenmesi çıkarım çalıştırma olarak bilinir. Android uygulamalarında çıkarım çalıştırmak için TensorFlow Lite çalışma zamanı ortamı, bir model ve giriş verileri gerekir.

Bir modelin belirli bir cihazda çıkarım oluşturma hızı, işlenen verilerin boyutuna, modelin karmaşıklığına, bellek ve CPU gibi kullanılabilir bilgi işlem kaynaklarına veya hızlandırıcı adı verilen özel işlemcilere bağlıdır. Makine öğrenimi modelleri, yetki verilmiş kullanıcılar 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 özel işlemcilerde daha hızlı çalışabilir. Model işlemenin yetki verme işlemleri ve donanım hızlandırma hakkında daha fazla bilgi edinmek için Donanım hızlandırmaya genel bakış sayfasını inceleyin.

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

Modeller, tahmin sonuçlarını tensör olarak oluşturur. Bu sonuçların, Android uygulamanız tarafından işlem yaparak veya kullanıcıya bir sonuç göstererek işlenmesi gerekir. Model çıkışı sonuçları, bir resim sınıflandırmaya ait tek bir sonuca (0 = köpek, 1 = kedi, 2 = kuş) karşılık gelen bir sayı kadar basit olabilir. Ayrıca, bir görüntüdeki sınıflandırılmış birkaç nesne için birden fazla sınırlayıcı kutu gibi, tahmin güven derecelerinin 0 ile 1 arasında olduğu çok daha karmaşık sonuçlar olabilir.

Gelişmiş geliştirme yolları

Daha sofistike ve özelleştirilmiş TensorFlow Lite modellerini kullanırken yukarıda açıklanandan daha gelişmiş geliştirme yaklaşımlarını kullanmanız gerekebilir. Aşağıdaki bölümlerde, Android uygulamalarında model çalıştırma ve TensorFlow Lite için geliştirmeyle ilgili gelişmiş teknikler açıklanmaktadır.

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

TensorFlow Lite'ın 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 makine öğrenimi işlemleri kullanan bir makine öğrenimi modelinize sahip olmanızdır.

TensorFlow Lite Flex çalışma zamanı, modeliniz için gerekli olan belirli operatörleri eklemenize olanak tanır. Modelinizi çalıştırmak için gelişmiş bir seçenek olarak Android için TensorFlow Lite'ı, TensorFlow makine öğrenimi modelinizi çalıştırmak için gereken operatörleri ve diğer işlevleri içerecek şekilde derleyebilirsiniz. Daha fazla bilgi için Android için TensorFlow Lite'ı geliştirme konusuna bakın.

C ve C++ API'leri

TensorFlow Lite, C ve C++ kullanan modelleri çalıştırmak için de bir API sunar. Uygulamanız Android NDK kullanıyorsa bu API'yi kullanmayı düşünmelisiniz. Birden çok platform arasında kod paylaşabilmek istiyorsanız da bu API'yi kullanabilirsiniz. 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 iyileştirilmiş veri gizliliğinden yararlanmak için modelleri bir Android cihazda çalıştırmanız gerekir. Bununla birlikte, bir modeli cihaz dışında bir bulut sunucusunda çalıştırmanın daha iyi bir çözüm olduğu durumlar da vardır. Örneğin, kullanıcılarınızın Android cihazlarına sığan 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 çok çeşitli cihazlar arasında tutarlı olarak çalışması en önemli öncelikse bu yaklaşım ayrıca 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 AI ve makine öğrenimi ürünleri sayfasına bakın.

Özel model geliştirme ve optimizasyonu

Özel makine öğrenimi modelleri geliştirmek ve bu modelleri, Android cihazlarda kullanım için optimize etmek, daha ileri düzey geliştirme yollarını içerir. Özel modeller oluşturmayı planlıyorsanız bellek ve işleme maliyetlerini azaltmak için modellere nicelleştirme teknikleri uygulamayı deneyin. TensorFlow Lite ile kullanmak üzere 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.