Performansla ilgili en iyi uygulamalar

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

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

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 hassasiyet gerektiren görevler için daha küçük bir model kullanmak daha iyidir. Bunun nedeni, bu işlemlerin daha az disk alanı ve bellek kullanımının yanı sıra genellikle daha hızlı ve enerji verimliliği de daha yüksek olmasıdır. Örneğin, aşağıdaki grafiklerde, yaygın olarak kullanılan bazı görüntü sınıflandırma modelleri için doğruluk ve gecikme dengeleri gösterilmektedir.

Model boyutu ve doğruluk grafiği

Doğruluk ve gecikme karşılaştırması grafiği

Mobil cihazlar için optimize edilmiş modellere ö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 listelenmiştir.

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

Modelinizin profilini çıkarın

Göreviniz için doğru aday modelini seçtikten sonra, modelinizin profilini çıkarmak ve modelle ilgili karşılaştırmalar yapmak 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 aracı bulunur. Bu, performans sorunlarını ve işlem süresine hangi operatörlerin hakim olduğunu anlamanıza yardımcı olabilir.

Ayrıca, standart Android sistem izlemeyi kullanarak Android uygulamanızdaki modelin 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 kullanabilirsiniz.

Grafikteki profil ve optimizasyon operatörleri

Belirli bir operatör modelde sıkça görünüyorsa ve profil çıkarmaya bağlı olarak operatörün en fazla zamanı harcadığını tespit ederseniz bu operatörü optimize edebilirsiniz. TensorFlow Lite çoğu operatör için optimize edilmiş sürümlere sahiptir. Bu nedenle bu senaryo nadirdir. Bununla birlikte, operatörün yürütüldüğü kısıtlamaları bilirseniz özel bir işlem işleminin daha hızlı bir sürümünü yazabilirsiniz. Özel operatörler kılavuzuna göz atın.

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ı hedefler. TensorFlow Lite, miktar belirleme gibi birden çok optimizasyon tekniğini destekler.

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

İleti dizisi sayısını ayarlama

TensorFlow Lite, birçok operatör için çok iş parçacıklı çekirdekleri destekler. İş parçacığı sayısını artırabilir ve operatörlerin yürütülmesini hızlandırabilirsiniz. Ancak iş parçacığı sayısının artırılması modelinizin daha fazla kaynak ve güç kullanmasına neden olur.

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 uygulamalara bağlı olarak performans değişkenliğinin artmasını gerektirir. Bu durum özellikle mobil uygulamalar için geçerlidir. Örneğin, izole testler tek iş parçacıklıya kıyasla 2 kat hız artışı gösterebilir ancak başka bir uygulama aynı anda yürütülüyorsa tek iş parçacıklı duruma kıyasla daha düşük performansa neden olabilir.

Gereksiz kopyaları kaldırın

Uygulamanız dikkatli bir şekilde tasarlanmadıysa modele giriş sağlanırken ve modelden çıkış okunurken fazladan 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 belgeleri dikkatlice kontrol ettiğinizden emin olun. Örneğin, giriş olarak ByteBuffers kullanıldığında Java API çok daha hızlıdır.

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

Android profiler ve Instruments gibi platforma özgü araçlar, uygulamanızda hata ayıklamak için kullanabileceğiniz yüksek miktarda profil çıkarma bilgisi sağlar. Bazen performans hatası modelde değil, uygulama kodunun modelle etkileşim kuran kısımlarında olabilir. Platforma özel profil oluşturma araçları ve platformunuz için en iyi uygulamalar hakkında bilgi sahibi olduğunuzdan emin olun.

Modelinizin cihazda bulunan donanım hızlandırıcıları kullanmanın avantajı olup olmadığı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 yetkili 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 kullanılarak Android ve iOS'ta kullanılabilir. Bunları denemek için GPU temsilcisine bakın.
  • Standart olmayan donanıma erişiminiz varsa kendi temsilcinizi oluşturabilirsiniz. Daha fazla bilgi için TensorFlow Lite yetkilerini inceleyin.

Bazı hızlandırıcıların farklı model türlerinde daha iyi çalıştığını unutmayın. Yetki verilmiş bazı kullanıcılar yalnızca kayan modelleri veya belirli bir şekilde optimize edilmiş modelleri destekler. Yetki verilen her kullanıcının uygulamanız için iyi bir seçim olup olmadığını görmek için karşılaştırmanız önemlidir. Örneğin, çok küçük bir modeliniz varsa model için GPU'ya yetki vermek sizin için uygun olmayabilir. Buna karşılık, hızlandırıcılar yüksek aritmetik yoğunluğa sahip büyük modeller için mükemmel bir seçimdir.