Rumah Kewangan Peribadi Yang menjalankan Python Paralel untuk Sains Data - makmies

Yang menjalankan Python Paralel untuk Sains Data - makmies

Isi kandungan:

Video: Computational Linguistics, by Lucas Freitas 2025

Video: Computational Linguistics, by Lucas Freitas 2025
Anonim

Kebanyakan komputer hari ini adalah multicore (dua atau lebih pemproses dalam pakej tunggal), beberapa dengan pelbagai CPU fizikal. Salah satu batasan Python yang paling penting ialah ia menggunakan teras tunggal secara lalai. (Ia dicipta dalam satu masa apabila teras tunggal adalah norma.)

Projek sains data memerlukan banyak perhitungan. Khususnya, sebahagian aspek saintifik sains data bergantung pada ujian berulang dan eksperimen pada matriks data yang berlainan. Jangan lupa bahawa bekerja dengan kuantiti data yang besar bermakna bahawa kebanyakan perubahan masa memantau pemerhatian selepas pemerhatian (contohnya, operasi yang sama dan tidak berkaitan di bahagian berlainan matriks).

Menggunakan lebih banyak teras CPU mempercepat pengiraan dengan faktor yang hampir sepadan dengan bilangan teras. Sebagai contoh, mempunyai empat teras akan berfungsi paling baik empat kali lebih cepat. Anda tidak menerima peningkatan empat kali ganda penuh kerana terdapat overhead apabila memulakan proses selari - contoh Python yang baru perlu disiapkan dengan maklumat ing memori yang betul dan dilancarkan; Oleh itu, penambahbaikan akan kurang daripada berpotensi dicapai tetapi masih penting.

Mengetahui bagaimana menggunakan lebih daripada satu CPU adalah kemahiran maju tetapi sangat berguna untuk meningkatkan bilangan analisis yang telah siap, dan untuk mempercepatkan operasi anda semasa membuat dan apabila menggunakan produk data anda.

Multiprocessing berfungsi dengan mereplikasi kod dan kandungan memori yang sama dalam pelbagai contoh Python baru (pekerja), menghitung hasil untuk masing-masing, dan mengembalikan hasil yang dikumpulkan ke konsol asal utama. Jika contoh asal anda sudah menduduki banyak memori RAM yang ada, tidak mungkin untuk membuat contoh baru, dan mesin anda mungkin kehabisan memori.

Melakukan paralelisme multicore

Untuk melakukan pelbagai paralelisme dengan Python, anda mengintegrasikan pakej belajar Scikit dengan pakej joblib untuk operasi memakan masa, seperti model replika untuk mengesahkan keputusan atau untuk mencari parameter hiper yang terbaik. Secara khusus, Scikit-learning membolehkan multiprocessing apabila

  • Cross-validating: Menguji hasil hipotesis pembelajaran komputer menggunakan data latihan dan pengujian yang berlainan

  • Grid-searching: daripada hipotesis mesin pembelajaran dan menguji keputusan yang berlaku

  • Ramalan multilabel: Menjalankan algoritma berbilang kali berbanding pelbagai sasaran apabila terdapat banyak hasil sasaran yang berbeza untuk meramalkan pada masa yang sama

  • Ensemble kaedah pembelajaran komputer: Memodelkan kumpulan pengelas yang besar, masing-masing bebas daripada yang lain, seperti apabila menggunakan pemodelan berdasarkan RandomForest

Anda tidak perlu melakukan apa-apa yang khusus untuk memanfaatkan pengiraan selari - anda boleh mengaktifkan parallelism dengan menetapkan n_jobs -parameter ke beberapa teras lebih daripada 1 atau dengan menetapkan nilai ke -1, yang bermaksud anda ingin menggunakan semua contoh CPU yang tersedia.

Jika anda tidak menjalankan kod anda dari konsol atau dari Notebook IPython, sangat penting untuk anda memisahkan kod anda daripada sebarang import pakej atau tugasan pembolehubah global dalam skrip anda dengan menggunakan jika __name __ == '__ main__': perintah pada permulaan mana-mana kod yang melaksanakan multicore parallelism. Pernyataan jika menyemak sama ada program itu dijalankan secara langsung atau dipanggil oleh konsol Python yang sudah berjalan, mengelakkan sebarang kekeliruan atau kesilapan oleh proses multiparall (seperti rekursif memanggil paralelisme).

Menunjukkan multiprocessing

Adalah idea yang baik untuk menggunakan IPython apabila anda menjalankan demonstrasi bagaimana multiprocessing benar-benar boleh menjimatkan masa anda semasa projek sains data. Menggunakan IPython memberikan kelebihan menggunakan perintah% magic timeit untuk pelaksanaan masa. Anda bermula dengan memuatkan dataset multiclass, algoritma mesin pembelajaran yang rumit (Vector Classifier Support, atau SVC), dan prosedur silang-pengesahan untuk menganggarkan skor hasil yang boleh dipercayai dari semua prosedur.

Perkara yang paling penting untuk diketahui ialah prosedur menjadi agak besar kerana SVC menghasilkan 10 model, yang mana ia mengulang 10 kali setiap kali menggunakan silang silang, untuk sejumlah 100 model.

dari sklearn. dataset import load_digits digit = load_digits () X, y = digit. data, digit. sasaran dari sklearn. svm import SVC dari sklearn. cross_validation import cross_val_score% timeit single_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = 1) Keluar [1]: 1 gelung, terbaik 3: 17. 9 s per gelung

anda perlu mengaktifkan paralelisme multicore dan masa keputusan menggunakan perintah berikut:

% timeit multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1) Out [2]: 1 gelung, terbaik dari 3: 11. 7 s per gelung

Mesin contoh menunjukkan kelebihan positif menggunakan pemproses multicore, walaupun menggunakan dataset kecil di mana Python membelanjakan sebahagian besar konsol permulaan masa dan menjalankan sebahagian kod dalam setiap satu. Overhed ini, beberapa saat, masih penting memandangkan jumlah pelaksanaan meluas selama beberapa saat. Bayangkan apa yang akan berlaku jika anda bekerja dengan set data yang lebih besar - masa pelaksanaan anda boleh dengan mudah dipotong dua atau tiga kali.

Walaupun kod ini berfungsi dengan baik dengan IPython, meletakkannya dalam skrip dan meminta Python untuk menjalankannya dalam konsol atau menggunakan IDE boleh menyebabkan ralat kerana operasi dalaman tugas multicore. Penyelesaiannya adalah untuk meletakkan semua kod di bawah pernyataan jika, yang menyemak sama ada program itu bermula secara langsung dan tidak dipanggil selepasnya. Inilah skrip contoh:

dari sklearn. dataset import load_digits dari sklearn. svm import SVC dari sklearn. cross_validation import cross_val_score if __name__ == '__main__': digit = load_digits () X, y = digits. data, digit. target multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1)
Yang menjalankan Python Paralel untuk Sains Data - makmies

Pilihan Editor

Bagaimana Menghubungkan Item Menu ke Kategori di Joomla - dummies

Bagaimana Menghubungkan Item Menu ke Kategori di Joomla - dummies

Untuk artikel yang dikategorikan dalam Joomla untuk dilihat oleh pengguna laman web anda, anda perlu memautkan item menu Joomla anda ke kategori Joomla yang mengandungi artikel yang ingin anda siarkan. Dengan menyambungkan kategori ke item menu, semua artikel dalam kategori boleh didapati melalui item menu yang berkaitan. Untuk membuat ...

Cara Memasang Joomla CMS pada Server Jauh - dummies

Cara Memasang Joomla CMS pada Server Jauh - dummies

Sebaik sahaja anda telah memuatkan fail Joomla yang tidak diturunkan di pelayan jauh dan sediakan MySQL untuk Joomla, anda sudah bersedia untuk memasang Sistem Pengurusan Kandungan Joomla (CMS). Navigasi ke tapak anda di pelayan tuan rumah. Anda melihat halaman pemasangan Joomla pertama. Pilih bahasa. Klik Seterusnya. Semua item dalam pane bahagian atas ...

Cara Membiarkan Pengguna Menguruskan Akaun Sendiri di Joomla - dummies

Cara Membiarkan Pengguna Menguruskan Akaun Sendiri di Joomla - dummies

Walaupun anda boleh mengurus pengguna dari hujung belakang, Joomla menyediakan kemudahan yang baik yang membolehkan pengguna menguruskan diri mereka juga. Anda boleh membuat halaman di mana pengguna boleh mendaftar, log masuk, menetapkan semula kata laluan mereka, diingatkan kata laluan mereka, dan sebagainya. Buat laman pengurusan pengguna Untuk membuat halaman yang membolehkan pengguna mengurus sendiri, anda ...

Pilihan Editor

Pengguna dan Definisi SharePoint berbeza - dummies

Pengguna dan Definisi SharePoint berbeza - dummies

SharePoint mempunyai banyak jenis pengguna yang berbeza, dan bergantung di mana peranan anda sesuai , anda mungkin mempunyai pengalaman yang sangat berbeza dari pengguna SharePoint yang lain. Sebagai contoh, anda mungkin ditugaskan untuk membuat dan mentadbir laman web SharePoint untuk pasukan anda. Dalam kes ini, anda mungkin melihat ke hadapan fungsi yang luas SharePoint ...

Dan Microblog dalam SharePoint - dummies

Dan Microblog dalam SharePoint - dummies

Microblogging dibuat terkenal oleh Twitter. SharePoint 2013 membawa mikroblogging ke dunia korporat. Menggunakan Twitter, anda menghantar mesej ringkas kepada dunia. Anda boleh mengikuti orang lain dan menarik pengikut anda sendiri. Anda menyebut orang lain menggunakan simbol @ yang diikuti dengan nama mereka dan boleh menanda topik menggunakan # ...

Mengeksport Table Akses ke Senarai Dalam Talian SharePoint - dummies

Mengeksport Table Akses ke Senarai Dalam Talian SharePoint - dummies

Jika anda mempunyai meja dalam Akses yang ada pangkalan data yang anda ingin sediakan untuk ahli pasukan anda yang tidak mempunyai aplikasi MS Access 2010, cara terbaik untuk melakukan ini adalah untuk mengeksport jadual tersebut ke dalam senarai SharePoint. Ikuti langkah-langkah berikut: Dari pangkalan data anda, klik kanan pada jadual di ...

Pilihan Editor

Penyediaan aSVAB: Akar - patung

Penyediaan aSVAB: Akar - patung

Menjadi akrab dengan akar untuk ASVAB. Akar adalah kebalikan dari kuasa atau eksponen. Terdapat pelbagai jenis akar tak terhingga. Anda mempunyai akar kuadrat, yang bermaksud "membuang" asas kepada kuasa kedua; akar kubus, yang bermaksud "membuang" asas yang dinaikkan kepada kuasa ketiga; akar yang keempat, untuk ...

ASVAB Penyediaan: Bekerja dengan Perpuluhan - patung

ASVAB Penyediaan: Bekerja dengan Perpuluhan - patung

Anda perlu tahu bagaimana untuk bekerja dengan perpuluhan untuk ASBAB . Perpuluhan adalah kaedah menulis nombor pecahan tanpa menggunakan pengangka dan penyebut. Anda boleh menulis pecahan 7/10 sebagai perpuluhan 0. 7; anda menyebutnya "tujuh persepuluh" atau "titik nol tujuh. "Tempoh atau titik perpuluhan menunjukkan bahawa nombor itu ...

ASVAB Subtest Details - dummies

ASVAB Subtest Details - dummies

Tergantung di mana dan untuk tujuan apa yang anda ambil ujian, anda mungkin menghadapi beberapa versi ASVAB. Versi terkomputer dari ASVAB (CAT-ASVAB) mengandungi sembilan subtest masa yang berasingan. Pada CAT-ASVAB, Maklumat Auto dan Maklumat Kedai dipisahkan kepada dua ujian berbeza, sedangkan mereka digabungkan pada versi kertas. Lihatlah ...