Performansla ilgili en iyi uygulamalar

Mobil ve yerleşik cihazların bilgi işlem kaynakları sınırlı olduğundan uygulama kaynağınızı verimli bir şekilde kullanmanız önemlidir. TensorFlow Lite modelinizin performansını iyileştirmek için kullanabileceğiniz en iyi uygulamaların ve stratejilerin bir listesini derledik.

Görev için en iyi modeli seçme

Göreve bağlı olarak, modelin karmaşıklığı ile boyutu arasında bir denge kurmanız gerekir. Göreviniz yüksek doğruluk gerektiriyorsa büyük ve karmaşık bir modele ihtiyacınız olabilir. Daha az kesinlik gerektiren görevler için daha küçük bir model kullanmak daha iyidir. Çünkü bu görevler hem daha az disk alanı ve bellek kullanır hem de genellikle daha hızlıdır ve enerji açısından daha verimlidir. Örneğin, aşağıdaki grafiklerde, yaygın olarak kullanılan bazı görüntü sınıflandırma modellerinde doğruluk ve gecikme dengeleri gösterilmektedir.

Model boyutu ile doğruluk karşılaştırması grafiği

Doğruluk ve gecikme grafiği

Mobil cihazlar için optimize edilmiş modellere bir örnek olarak, mobil görüş uygulamaları için optimize edilmiş MobileNets verilebilir. TensorFlow Hub'da, mobil ve yerleşik cihazlar için özel olarak optimize edilmiş diğer birçok model listelenir.

Aktarım öğrenmesini kullanarak listelenen modelleri kendi veri kümenizde yeniden eğitebilirsiniz.

Modelinizin profilini oluşturun

Göreviniz için doğru aday modelini seçtikten sonra modelinizin profilini çıkarıp karşılaştırmak iyi bir uygulamadır. TensorFlow Lite karşılaştırma aracında operatör başına profil oluşturma istatistiklerini gösteren yerleşik bir profil oluşturucu bulunur. Bu, performans sorunlarını ve işlem süresinde hangi operatörlerin baskın olduğunu anlamanıza yardımcı olabilir.

Ayrıca, standart Android sistem izlemeyi kullanarak modelin Android uygulamanızda profilini çıkarmak ve GUI tabanlı profil oluşturma araçlarıyla operatör çağrılarını zamana göre görselleştirmek için TensorFlow Lite izlemeyi de kullanabilirsiniz.

Grafikte operatörler için profil oluşturma ve optimizasyon

Belirli bir operatör modelde sık görünüyorsa ve profil çıkarmaya bağlı olarak operatörün en çok zaman aldığını tespit ederseniz bu operatörü optimize edebilirsiniz. TensorFlow Lite'ın çoğu operatör için optimize edilmiş sürümleri olduğundan bu senaryo nadiren görülür. Bununla birlikte, operatörün yürütülmesiyle ilgili kısıtlamaları biliyorsanız özel işlemin daha hızlı bir sürümünü yazabilirsiniz. Özel operatörler kılavuzunu inceleyin.

Modelinizi optimize etme

Model optimizasyonu, mobil cihazlarda dağıtılabilmesi için genellikle daha hızlı ve enerji açısından daha verimli olan daha küçük modeller oluşturmayı amaçlar. TensorFlow Lite, nicelikselleştirme gibi birden fazla optimizasyon tekniğini destekler.

Ayrıntılar için model optimizasyonu belgelerini inceleyin.

İş parçacığı sayısını değiştirme

TensorFlow Lite, birçok operatör için çoklu iş parçacıklı çekirdekleri destekler. İş parçacığı sayısını artırabilir ve operatörlerin yürütülmesini hızlandırabilirsiniz. Bununla birlikte, iş parçacığı sayısını artırmak modelinizin daha fazla kaynak ve güç kullanmasını sağlar.

Bazı uygulamalarda gecikme, enerji verimliliğinden daha önemli olabilir. Çevirmen ileti dizisi sayısını ayarlayarak iş parçacığı sayısını artırabilirsiniz. Bununla birlikte, çok iş parçacıklı yürütme, eş zamanlı olarak yürütülen diğer işleme bağlı olarak daha fazla performans değişkenine neden olur. Bu durum özellikle mobil uygulamalar için geçerlidir. Örneğin, izole testler tek iş parçacığına kıyasla 2 kat hız artışı gösterebilir ancak aynı anda başka bir uygulama çalışıyorsa tek iş parçacığına kıyasla daha kötü performansa yol açabilir.

Gereksiz kopyaları kaldırma

Uygulamanız dikkatli bir şekilde tasarlanmamışsa girdiyi modele aktarırken ve çıkışı modelden okurken yedek kopyalar olabilir. Gereksiz kopyaları kaldırdığınızdan emin olun. Java gibi daha üst düzey API'ler kullanıyorsanız performans uyarıları için dokümanları dikkatle incelediğinizden emin olun. Örneğin, girdi olarak ByteBuffers kullanılırsa Java API çok daha hızlı çalışır.

Platforma özgü araçlarla uygulamanızın profilini oluşturun

Android profil aracı ve Araçlar gibi platforma özgü araçlar, uygulamanızda hata ayıklamak için kullanılabilecek çok sayıda profil oluşturma bilgisi sağlar. Bazen performans hatası modelde değil, modelle etkileşim kuran uygulama kodunun bazı kısımlarında olabilir. Platforma özel profil oluşturma araçları ve platformunuz için en iyi uygulamalar hakkında bilgi edinin.

Modelinizin, cihazda mevcut donanım hızlandırıcıları kullanmaktan yararlanıp yararlanamayacağını değerlendirin.

TensorFlow Lite; GPU'lar, DSP'ler ve nöral hızlandırıcılar gibi daha hızlı donanımlarla modelleri hızlandırmanın yeni yollarını ekledi. Genellikle bu hızlandırıcılar, yorumlayıcı yürütme işleminin bazı bölümlerini devralan yetki verilmiş alt modüller aracılığıyla gösterilir. TensorFlow Lite, yetki verilmiş kullanıcıları şu şekilde kullanabilir:

  • GPU yetkilendirmesi, sırasıyla OpenGL/OpenCL ve Metal kullanan Android ve iOS'te kullanılabilir. Bunları denemek için GPU yetkilisine bakın.
  • Standart olmayan donanıma erişiminiz varsa kendi yetki verdiğiniz kullanıcıyı oluşturabilirsiniz. Daha fazla bilgi için TensorFlow Lite yetki verilmiş içeriklerine göz atın.

Bazı hızlandırıcıların farklı model türlerinde daha iyi çalıştığını unutmayın. Bazı yetki verilmiş kullanıcılar, yalnızca belirli bir şekilde optimize edilmiş kayan modelleri veya modelleri destekler. Başvurunuz için iyi bir seçim olup olmadığını görmek amacıyla her temsilciyi karşılaştırmanız önemlidir. Örneğin, çok küçük bir modeliniz varsa modeli GPU'ya devretmeye değmeyebilir. Hızlandırıcılar ise yüksek aritmetik yoğunluğa sahip büyük modeller için mükemmel bir seçimdir.