Ilmu Data

Cara Menghitung Matriks dengan Python Tanpa NumPy

Cara Menghitung Matriks dengan Python Tanpa NumPy
Untuk banyak aplikasi, Anda memerlukan matematika. Di Python ada modul matematika yang menangani dasar-dasar seperti fungsi pembulatan, faktorial, dan pembulatan. Ini juga mencakup fungsi Power & logaritmik, trigonometri, sudut dan hiperbolik. Untuk bilangan kompleks, modulnya adalah cmath. Ini tidak menangani operasi matriks.

Apa perbedaan antara array dan matriks??

Beberapa orang mencari solusi matriks untuk masalah array, jadi apa bedanya??  Perbedaan besar adalah bahwa nilai matriks adalah angka, array dapat berisi informasi lain, bahkan string.  Matriks dapat mewakili persamaan, di sinilah sebagian besar pengembang membutuhkannya, setidaknya dalam kasus penggantian NumPy.

Bagaimana Anda membuat perhitungan matriks??

Operasi matriks standar mudah dibuat, saat menambahkan Anda hanya menambahkan elemen, saat mengalikan Anda dapat menggunakan skalar untuk setiap elemen dan seterusnya.

Perkalian sedikit lebih kompleks tetapi dengan sangat sedikit. Yang membuatnya berat adalah Anda perlu melakukan banyak perhitungan untuk setiap solusi, di sinilah kinerja berperan. Karena sebagian besar perhitungan tidak bergantung satu sama lain, perhitungan ini adalah kandidat yang sangat baik untuk perhitungan paralel. GPU dirancang untuk perhitungan semacam ini dan dirancang untuk ditambahkan ke sistem desktop dengan mudah.

Saat Anda perlu melakukan perhitungan matriks dengan Python, solusi pertama yang Anda temukan adalah numPy.  Namun NumPy tidak selalu merupakan sistem yang paling efisien untuk menghitung banyak matriks.
Posting ini akan membahas opsi apa yang Anda miliki di Python.

Ketika Anda membutuhkan alternatif, mulailah dengan melihat lebih hati-hati untuk apa Anda membutuhkan operasi matriks. Instalasi Anda saat ini mungkin sudah memiliki, baik implementasinya sendiri, atau menggunakan pustaka yang mendasarinya. Contohnya adalah Pembelajaran Mesin, di mana kebutuhan akan operasi matriks adalah yang terpenting. TensorFlow memiliki library sendiri untuk operasi matriks. Pastikan Anda mengetahui perpustakaan Anda saat ini.

Namun dalam banyak kasus, Anda memerlukan solusi yang sesuai untuk Anda. Mungkin ada batasan di  NumPy, beberapa library lebih cepat dari NumPy dan dibuat khusus untuk matriks. Sering kali, pengembang ingin mempercepat kode mereka sehingga mereka mulai mencari alternatif. Salah satu alasannya adalah NumPy tidak dapat berjalan di GPU.

Sementara posting ini adalah tentang alternatif untuk NumPy, perpustakaan yang dibangun di atas NumPy, Perpustakaan Theano perlu disebutkan. Pustaka Theano terintegrasi erat dengan NumPy dan memungkinkan matriks yang didukung GPU. Theano adalah perpustakaan yang lebih besar untuk pembelajaran mesin tetapi Anda hanya dapat mengangkat fungsi matriks.

Untuk penjelasan lebih dalam tentang penggunaan Theano, lihat halaman ini: http://www.marekrei.com/blog/theano-tutorial/

SpPy adalah library khusus untuk sparse array, masih bisa digunakan untuk matriks. Omong-omong, array jarang adalah array yang memiliki banyak nilai nol di dalamnya. Perpustakaan ini kecil dan efisien tetapi sedikit terbatas karena spesialisasinya. Itu juga menggunakan NumPy tetapi lebih efisien daripada hanya NumPy.
https://pythonhosted.org/mata-mata/

Eigen adalah implementasi matriks yang efisien, untuk menggunakannya dengan Python Anda memerlukan miniEigen, tersedia di https://pypi.org/pypi/minieigen. Eigen sebenarnya termasuk dalam banyak solusi lain. Ini bertindak sebagai pustaka matriks generik untuk modul dan kerangka kerja yang lebih khusus. Pustaka ini memiliki banyak modul untuk matriks padat dan manipulasi array. Ini juga mendukung aljabar linier, dekomposisi, dan aljabar linier jarang. Paket ini juga memiliki fungsi plugin sehingga Anda dapat menambahkan modul Anda sendiri.
Untuk menggunakan Eigen, instal dengan pip dan impor dalam kode Anda.

PyTorch adalah perpustakaan untuk Pembelajaran Mesin, karena ini memiliki operasi matriks. Mengimpor seluruh perpustakaan berlebihan jika Anda hanya ingin membuat beberapa perhitungan. Namun, jika Anda baru memulai dengan proyek pembelajaran mesin, pastikan Anda memutuskan apakah proyek ini cocok untuk Anda.
Alternatif lain adalah mengambil C-library dan menggunakannya. Untuk memungkinkan ini, ada solusi bernama cffi yang akan membuat antarmuka untuk Anda. Solusi ini mengharuskan Anda sudah mengetahui C dan membuat pembungkus untuk setiap fungsi yang Anda butuhkan. Kode kemudian akan terlihat kacau dan sulit dibaca tetapi ini mungkin sepadan tergantung pada proyek Anda.

Jika Anda hanya ingin mempercepat semua fungsi array dan numerik, Anda dapat menggunakan numba sebagai gantinya. Numba adalah kompiler Python. Saat Anda menggunakannya, kompiler akan membuat kode biner 'tepat pada waktunya', jit. Ide jit lebih umum digunakan dengan Java tetapi sangat berguna untuk matematika berat di Python. Karena Python ditafsirkan, Anda bisa mendapatkan masalah kinerja dengan matematika berat, numba menangani ini dengan mengkompilasi ke CPU atau GPU sesuai pilihan Anda.
Ada juga fitur komputasi paralel yang tersedia, secara default kompiler berjalan dengan kunci yang menghentikan banyak utas agar tidak berjalan secara bersamaan. Anda dapat menonaktifkannya dengan tanda selama Anda mengetahui potensi masalah yang terkait dengan pemrograman paralel.

Kesimpulan

Sering kali ketika Anda memulai pemrograman dengan Python, atau bahasa lain, Anda mengalami keterbatasan bahasa, kompiler, atau yang lainnya. Ketika Anda berada dalam situasi ini, Anda harus berhenti dan memikirkan batasan apa yang Anda miliki dan mempertimbangkan berapa banyak orang lain yang mungkin memiliki situasi yang sama. Dalam kasus Python dan NumPy, banyak ilmuwan dan pengembang telah menulis kode yang membutuhkan eksekusi cepat. Warisan ini telah menciptakan banyak cabang yang dapat memecahkan masalah Anda tanpa memaksa Anda untuk beralih bahasa atau menulis ekstensi baru ke bahasa khusus ini.

Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah tambahan kedua belas untuk seri Tomb Raider - waralaba game aksi-petualangan yang dibuat oleh Eidos Montreal. Permain...
Cara Meningkatkan FPS di Linux?
FPS adalah singkatan dari Bingkai per detik. Tugas FPS adalah mengukur kecepatan bingkai dalam pemutaran video atau pertunjukan game. Dengan kata sede...
Game Lab Aplikasi Oculus Teratas
Jika Anda adalah pemilik headset Oculus maka Anda harus tahu tentang sideloading. Sideloading adalah proses menginstal konten non-toko di headset Anda...