Tam metin 1860 Kelimeler, tahmini öğrenme süresi 6 dakika
Kaynak: Pexels
Veri bilimcileri, işlerini desteklemek için genellikle daha fazla çekirdeğe ve güçlü bilgi işlem gücüne sahip sunuculara ihtiyaç duyar. Bu nedenle, donanım seçimi açısından dört çekirdekli, sekiz çekirdekli, turbo şarjlı dizüstü bilgisayarları tercih etme eğilimindedirler.
Ancak bu şeylerin orijinal gücünü% 100 ellerinde gerçekten kullanıp açığa çıkarabilirler mi?
Bazen verileri işlerken araçlarla sınırlanırlar; bazen birkaç dakika zaman kazanmak için önemsiz bir kod yazmazlar. Sonunda, zaman optimizasyonunun uzun vadede gerçekten yararlı olduğunu fark edebilirsiniz.
Peki bilim adamları bunu optimize edebilir mi?
Elbette sonuç ortada.
Bu makale, eldeki bilgi işlem gücünü kullanan ve bunu Swifter yazılımını kullanarak panda veri çerçevelerine uygulayan bilim insanlarıyla ilgilidir.
Sorun bildirimi
Bilim adamlarının halihazırda devasa bir panda veri çerçevesi var ve ona karmaşık bir işlevi uygulamak çok zaman alıyor.
Bu makale için yazar 250.000 satır ve 4 sütun ilgili veri oluşturacaktır.
Paralelleştirme kullanılarak kodun ekstra performansı kolayca elde edilebilir mi?
Veriler aşağıdaki gibidir:
Veri örneği
Yalnızca tek bir değişiklik kullanarak paralelleştirme
Kaynak: Pexels rahatlayın ve paralel olun !!
Ardından basit bir deney yapılır.
Veri çerçevesinde yeni bir sütun oluşturmayı deneyin. Bu adım, panda'da apply-lambda kullanılarak kolayca gerçekleştirilebilir.
Yukarıdaki kodun çalışması yaklaşık 10 dakika sürer. Yazar, yukarıdaki iki sütun için basit bir hesaplama yapar.
Bu optimize edilebilir mi? Ne yapılması gerekiyor?
Tabii ki, cevap evet, sadece bir "sihirli kelime" ekleyin -Swifter optimize edilebilir.
Ama önce, çok kolay olan daha hızlı yazılımı yüklemeniz gerekir:
Ardından, onu kullanmak için uygulamadan önce çalışmak için swifter anahtar kelimesini içe aktarın ve ekleyin.
Bu çalışıyor mu?
elbette. Sadece işlevin kullanılmasıyla karşılaştırıldığında, bu işlem çalışma süresini ikiye katlayabilir.
Bunun gizemi nedir?
Kaynak: Veri boyutunun artması Dask, Pan'ı nasıl etkiler?
Swifter, işlevi vektörleştirerek veya arka uçtaki Dask paralelleştirme işlevini kullanarak veya veri kümesi küçük olduğunda basit panda uygulama işlevini kullanarak uygulama işlevini uygulamanın en iyi yolunu seçer.
Bu örnekte, Swifter, uygulama işlevini npartitions = cpu_count () * 2 varsayılan değeriyle paralelleştirmek için Dask'ı kullanır.
Üzerinde çalıştığım MacBook için CPU sayısı 6 ve hyperthreading 2. Bu nedenle, CPU sayısı 12'dir, bu da npartitions değerini 24 yapar.
Okuyucular ayrıca n_partitions değerini kendileri ayarlamayı da seçebilirler. Yazar, varsayılan değerin çoğu durumda iyi çalıştığını fark etti, ancak okuyucular daha fazla hız kazanmak için onu da ayarlayabilirler.
Örneğin: n_partitions = 12 olarak ayarlarsanız, 2x hızlanma elde edersiniz. Burada bölüm sayısının azaltılması çalışma süresini azaltacaktır çünkü bölümler arasında veri geçişinin maliyeti yüksektir.
sonuç olarak
Paralellik her derde deva değil, bir bombadır.
Paralelleştirme tüm sorunları çözmez, yine de işlevi optimize etmeye ihtiyaç duyar, ancak bu iyi bir araçtır.
Zaman geçti, zaman her zaman yeterli değil. Bu durumda, veri işlemede paralel işlem için bir kelime kullanmanız gerekir.
Kelime daha hızlı.
Kaynak: Pexels
İş önemlidir, ancak hayat hayattaki en önemli şeydir.
Umarım bu makaleyi okuduktan sonra herkes onu esnek bir şekilde kullanabilir, verimliliği artırabilir ve "iyi bir yaşam" için kendinize zaman kazandırabilir.
Yorum Beğen Takip Et
Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım
Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun