Performansla ilgili en iyi uygulamalar

Mobil ve yerleşik cihazların işlem kaynakları sınırlı olduğundan uygulama kaynaklarınızı verimli tutmanıza çok önemlidir. Sizin için bir liste derledik TensorFlow'unuzu geliştirmek için kullanabileceğiniz en iyi uygulamaları ve stratejileri Basit model performansı.

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

Göreve bağlı olarak, modelin karmaşıklığı arasında denge kurmanız gerekir. seçin. Göreviniz yüksek doğruluk gerektiriyorsa büyük ve yüksek doğruluk kontrolüne karmaşık bir modeldir. Daha az kesinlik gerektiren görevlerde, sabit bir daha küçük bir modeldir çünkü daha az disk alanı ve bellek kullanmakla kalmaz, aynı zamanda ve enerji verimliliği daha yüksek. Örneğin, aşağıdaki grafiklerde kesinlik ve gecikme ödünçlerini verir.

Model boyutu grafiği ile
doğruluk

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

Mobil cihazlar için optimize edilmiş modellere örnek olarak şunlar verilebilir: Mobil cihazlar için optimize edilmiş MobileNets müzakere tekniklerini konuşacağız. Kaggle Modeller, mobil cihazlar ve yerleşik cihazlar için özel olarak optimize edilmiş yeni modellerdir.

Aktarımı kullanarak listelenen modelleri kendi veri kümenizde yeniden eğitebilirsiniz ele alacağız.

Modelinizin profilini çıkarın

Göreviniz için doğru aday modeli seçtikten sonra ve karşılaştırma yapmak için iyi bir uygulamadır. TensorFlow Lite karşılaştırması Araç , operatör başına profil oluşturma istatistiklerini gösteren yerleşik bir profil düzenleyiciye sahiptir. Bu performans sorunlarını ve bu sorunu hangi operatörlerin daha fazla kontrol sahibi olduğunu anlamanıza daha yüksek olabilir.

TensorFlow Lite'ı da kullanabilirsiniz profili izleme modeliniz, standart Android sistem izlemeyi kullanarak ve GUI tabanlı profil oluşturma ile operatör çağrılarını zamana göre görselleştirmek için araçlar.

Grafikteki profil ve optimizasyon operatörleri

Belirli bir operatör modelde sıkça görünüyorsa ve operatörün en fazla zamanı tükettiğini ve aksi takdirde, operatörü optimize edebilirsiniz. Bu senaryo, TensorFlow kadar nadirdir Lite sürümleri çoğu operatör için optimize edilmiştir. Ancak şunları yapabilirsiniz: bir özel operasyon aracının işlecinin yürütülmesidir. Özel operatörler kılavuzuna göz atın.

Modelinizi optimize etme

Model optimizasyonu, genelde daha hızlı ve sorunsuz bir şekilde çalışabilen daha küçük Böylece mobil cihazlarda dağıtılabilir. 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. Şunları yapabilirsiniz: iş parçacığı sayısını artırır ve operatörlerin yürütülmesini hızlandırır. Artma Ancak iş parçacığı sayısı modelinizin daha fazla kaynak kullanmasını güç.

Bazı uygulamalarda gecikme, enerji verimliliğinden daha önemli olabilir. Siz çevirmen sayısını ayarlayarak iş parçacığı sayısını artırabilir threads. Bununla birlikte, çok iş parçacıklı yürütme, performans artışını beraberinde getirir eşzamanlı olarak yürütülen uygulamalara bağlı olarak değişkenlik gösterebilir. Bu özellikle de mobil uygulamalar için geçerli. Örneğin, izole testlerde 2 kat daha fazla tek iş parçacıklı ile tek iş parçacıklı karşılaştırıldığında hızlanır ancak başka bir uygulama aynı anda çalışıyorsa tek iş parçacıklı sisteme göre daha kötü performansa neden olabilir.

Gereksiz kopyaları kaldırın

Uygulamanız dikkatli bir şekilde tasarlanmadıysa fazladan kopyalar olabilir ve çıktıyı modele besleme sırasında bu işlemi düzgün şekilde gerçekleştirir. Şunları yaptığınızdan emin olun: ve gereksiz kopyaları ortadan kaldırır. Java gibi daha üst düzey API'ler kullanıyorsanız performans uyarıları için belgeleri dikkatlice kontrol edin. Örneğin, ByteBuffers olarak kullanılırsa Java API çok daha hızlıdır girişler.

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

Android gibi platforma özgü araçlar profiler ve Enstrümanlar zengindir bir dizi profil çıkarma bilgisine sahip olur. Bazen performans hatası modelde değil, ancak uygulama kodunun, modelle etkileşimde bulunur. Platform hakkında bilgi sahibi olduğunuzdan emin olun. platformunuza özel profil çıkarma araçları ve en iyi uygulamalar.

Modelinizin cihazda bulunan donanım hızlandırıcıları kullanmanın avantajı olup olmadığını değerlendirin

TensorFlow Lite, modelleri daha hızlı donanımla hızlandırmanın yeni yollarını ekledi Örneğin GPU'lar, DSP'ler ve nöral hızlandırıcılar. Genellikle bu hızlandırıcılar özelliklerini devralan delegate alt modülleri aracılığıyla belirli kısımlarına odaklanılabilir. TensorFlow Lite, yetki verilmiş kullanıcıları şu şekilde kullanabilir:

Bazı hızlandırıcıların farklı model türlerinde daha iyi çalıştığını unutmayın. Biraz yetki verilmiş kullanıcılar yalnızca kayan modelleri veya belirli bir şekilde optimize edilmiş modelleri destekler. Evet her bir yetkiyi karşılaştırmak önemlidir. tercih edebilirsiniz. Örneğin, çok küçük bir modeliniz varsa, için GPU'ya yetki vermeye değmez. Öte yandan hızlandırıcılar Yüksek aritmetik yoğunluğa sahip büyük modeller için mükemmel bir seçenektir.