Machine Learning Things adalah perpustakaan Python ringan yang berisi fungsi dan cuplikan kode yang saya gunakan dalam penelitian sehari -hari saya dengan pembelajaran mesin, pembelajaran mendalam, NLP.
Saya membuat repo ini karena saya bosan selalu mencari kode yang sama dari proyek yang lebih lama dan saya ingin mendapatkan beberapa pengalaman dalam membangun perpustakaan Python. Dengan menyediakan ini untuk semua orang, ini memberi saya akses mudah ke kode yang sering saya gunakan dan dapat membantu orang lain dalam pekerjaan pembelajaran mesin mereka. Jika Anda menemukan bug atau sesuatu tidak masuk akal, silakan buka masalah.
Bukan itu saja! Perpustakaan ini juga berisi cuplikan kode Python dan buku catatan yang mempercepat alur kerja pembelajaran mesin saya.
Catatan:
Feb 5, 2022 Sekali lagi terima kasih atas dukungan dan kebaikan Anda! Paket ini tersedia di PYPI sekarang! pip install ml-thingsJuly 16, 2021 Terima kasih atas dukungan dan kebaikan Anda! Saat saya menjanjikan, saya akan memindahkan repo ini ke modul pemasangan PIP.ML_THINGS :
Cuplikan : Daftar cuplikan python yang dikuratori yang sering saya gunakan.
Komentar : Contoh tentang bagaimana saya suka mengomentari kode saya. Ini masih merupakan pekerjaan yang sedang berlangsung.
Tutorial Notebook : Proyek Pembelajaran Mesin yang saya konversi menjadi tutorial dan diposting secara online.
Catatan terakhir : bersyukur.
Repo ini diuji dengan Python 3.6+.
Itu selalu praktik yang baik untuk menginstal ml_things di lingkungan virtual. Jika Anda memandu menggunakan lingkungan virtual Python, Anda dapat memeriksa panduan pengguna di sini.
Anda dapat menginstal ml_things dengan PIP dari GitHub:
pip install git+https://github.com/gmihaila/ml_thingsAtau dari pypi:
pip install ml-thingsSemua fungsi diimplementasikan dalam modul ML_THINGS .
Fungsi terkait manipulasi array yang dapat bermanfaat saat bekerja dengan pembelajaran mesin.
Array panjang variabel pad ke array numpy tetap. Ini dapat menangani array tunggal [1,2,3] atau array bersarang [[1,2], [3]].
Secara default itu akan memadamkan nol ke panjang maksimum baris yang terdeteksi:
> >> from ml_things import pad_array
> >> pad_array ( variable_length_array = [[ 1 , 2 ],[ 3 ],[ 4 , 5 , 6 ]])
array ([[ 1. , 2. , 0. ],
[ 3. , 0. , 0. ],
[ 4. , 5. , 6. ]])Ini juga dapat meletakkan ke ukuran khusus dan dengan nilai cusotm:
> >> pad_array ( variable_length_array = [[ 1 , 2 ],[ 3 ],[ 4 , 5 , 6 ]], fixed_length = 5 , pad_value = 99 )
array ([[ 1. , 2. , 99. , 99. , 99. ],
[ 3. , 99. , 99. , 99. , 99. ],
[ 4. , 5. , 6. , 99. , 99. ]])Pisahkan daftar menjadi batch/potongan. Ukuran batch terakhir adalah sisa nilai daftar. Catatan: Ini juga disebut chunking. Saya menyebutnya batch karena saya menggunakannya lebih banyak di ML.
Batch terakhir akan menjadi nilai reamining:
> >> from ml_things import batch_array
> >> batch_array ( list_values = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 8 , 9 , 8 , 6 , 5 , 4 , 6 ], batch_size = 4 )
[[ 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 ], [ 8 , 9 , 8 , 6 ], [ 5 , 4 , 6 ]]Plot fungsi terkait yang dapat berguna saat bekerja dengan pembelajaran mesin.
Buat plot dari satu array nilai.
Semua argumen dioptimalkan untuk plot cepat. Ubah Argumen magnify untuk memvariasikan ukuran plot:
> >> from ml_things import plot_array
> >> plot_array ([ 1 , 3 , 5 , 3 , 7 , 5 , 8 , 10 ], path = 'plot_array.png' , magnify = 0.1 , use_title = 'A Random Plot' , start_step = 0.3 , step_size = 0.1 , points_values = True , use_ylabel = 'Thid' , use_xlabel = 'This' )
Buat plot dari satu array nilai.
Semua argumen dioptimalkan untuk plot cepat. Ubah Argumen magnify untuk memvariasikan ukuran plot:
> >> from ml_things import plot_dict
> >> plot_dict ({ 'train_acc' :[ 1 , 3 , 5 , 3 , 7 , 5 , 8 , 10 ],
'valid_acc' :[ 4 , 8 , 9 ]}, use_linestyles = [ '-' , '--' ], magnify = 0.1 ,
start_step = 0.3 , step_size = 0.1 , path = 'plot_dict.png' , points_values = [ True , False ], use_title = 'Title' )
Fungsi ini mencetak dan merencanakan matriks kebingungan. Normalisasi dapat diterapkan dengan mengatur normalize=True .
Semua argumen dioptimalkan untuk plot cepat. Ubah Argumen magnify untuk memvariasikan ukuran plot:
> >> from ml_things import plot_confusion_matrix
> >> plot_confusion_matrix ( y_true = [ 1 , 0 , 1 , 1 , 0 , 1 ], y_pred = [ 0 , 1 , 1 , 1 , 0 , 1 ], magnify = 0.1 , use_title = 'My Confusion Matrix' , path = 'plot_confusion_matrix.png' );
Confusion matrix , without normalization
array ([[ 1 , 1 ],
[ 1 , 3 ]])
Fungsi terkait teks yang dapat berguna saat bekerja dengan pembelajaran mesin.
Teks bersih menggunakan berbagai teknik:
> >> from ml_things import clean_text
> >> clean_text ( "ThIs is $$$%. t t n \ so dirtyyy$$ text :'(. omg!!!" , full_clean = True )
'this is so dirtyyy text omg'Fungsi terkait web yang dapat bermanfaat saat bekerja dengan pembelajaran mesin.
Unduh file dari URL. Ini akan mengembalikan jalur file yang diunduh:
> >> from ml_things import download_from
> >> download_from ( url = 'https://raw.githubusercontent.com/gmihaila/ml_things/master/setup.py' , path = '.' )
'./setup.py'Ini adalah macam cuplikan Python yang sangat besar tanpa tema tertentu. Saya menempatkan mereka di yang paling sering digunakan sambil menjaga urutan logis. Saya suka memilikinya sesederhana dan seefisien mungkin.
| Nama | Keterangan |
|---|---|
| Baca file | Satu liner untuk membaca file apa pun. |
| Tulis file | Satu liner untuk menulis string ke file. |
| Debug | Mulailah debugging setelah baris ini. |
| Pip Instal GitHub | Instal perpustakaan langsung dari GitHub menggunakan pip . |
| Argumen parse | Parse argumen yang diberikan saat menjalankan file .py . |
| Doctest | Cara menjalankan unittc sederhana menggunakan fungsi documentaiton. Berguna saat perlu melakukan notebook di dalam tidak terputus. |
| Perbaiki teks | Karena data teks selalu berantakan, saya selalu menggunakannya. Sangat bagus untuk memperbaiki unicode yang buruk. |
| Tanggal saat ini | Cara Mendapatkan Tanggal Saat Ini Dalam Python. Saya menggunakan ini jika perlu memberi nama file log. |
| Waktu saat ini | Dapatkan waktu saat ini di Python. |
| Hapus tanda baca | Cara tercepat untuk menghapus tanda baca di Python3. |
| Dataset Pytorch | Sampel Kode tentang Cara Membuat Dataset Pytorch. |
| Pytorch-Device | Cara mengatur perangkat di pytorch untuk mendeteksi jika GPU tersedia. |
Ini adalah beberapa cuplikan tentang bagaimana saya suka mengomentari kode saya. Saya melihat banyak cara berbeda tentang bagaimana orang mengomentari kode mereka. Satu hal yang pasti: komentar apa pun lebih baik daripada tidak ada komentar .
Saya mencoba mengikuti sebanyak mungkin Pep 8 - Panduan Gaya untuk Kode Python.
Ketika saya mengomentari suatu fungsi atau kelas:
# required import for variables type declaration
from typing import List , Optional , Tuple , Dict
def my_function ( function_argument : str , another_argument : Optional [ List [ int ]] = None ,
another_argument_ : bool = True ) -> Dict [ str , int ]
r"""Function/Class main comment.
More details with enough spacing to make it easy to follow.
Arguments:
function_argument (:obj:`str`):
A function argument description.
another_argument (:obj:`List[int]`, `optional`):
This argument is optional and it will have a None value attributed inside the function.
another_argument_ (:obj:`bool`, `optional`, defaults to :obj:`True`):
This argument is optional and it has a default value.
The variable name has `_` to avoid conflict with similar name.
Returns:
:obj:`Dict[str: int]`: The function returns a dicitonary with string keys and int values.
A class will not have a return of course.
"""
# make sure we keep out promise and return the variable type we described.
return { 'argument' : function_argument }Di sinilah saya menyimpan buku catatan dari beberapa proyek sebelumnya yang saya ubah menjadi tutorial kecil. Sering kali saya menggunakannya sebagai dasar untuk memulai proyek baru.
Semua buku catatan ada di Google Colab . Belum pernah mendengar tentang Google Colab? ? Anda harus memeriksa ikhtisar colaboratory, pengantar Colab dan Python dan apa yang saya pikir adalah artikel menengah yang hebat tentang hal itu untuk mengkonfigurasi Google Colab seperti seorang pro.
Jika Anda memeriksa /ml_things/notebooks/ banyak di antaranya belum tercantum di sini karena belum dalam bentuk 'dipoles'. Ini adalah buku catatan yang cukup baik untuk dibagikan kepada semua orang:
| Nama | Keterangan | Tautan |
|---|---|---|
| ? Batch yang lebih baik dengan bucketiterator pytorchtext | Cara menggunakan bucketiterator pytorchtext untuk mengurutkan data teks untuk batching yang lebih baik. | |
| ? Model Pretrain Transformers di Pytorch menggunakan memeluk transformator wajah | Pretrain 67 Model Transformers pada dataset khusus Anda. | |
| ? Fine-Tune Transformers di Pytorch Menggunakan Transformer Wajah Memeluk | Tutorial lengkap tentang cara menyempurnakan model transformator 73 untuk klasifikasi teks-tidak ada perubahan kode yang diperlukan! | |
| Bert dalam pekerjaan di Pytorch menggunakan memeluk transformator wajah | Lengkapi tutorial tentang bagaimana input mengalir melalui Bert. | |
| ? GPT2 untuk klasifikasi teks menggunakan wajah pelukan? Transformer | Lengkap tutorial tentang cara menggunakan GPT2 untuk klasifikasi teks. |
Terima kasih telah memeriksa repo saya. Saya seorang perfeksionis jadi saya akan melakukan banyak perubahan ketika datang ke detail kecil.
Jika Anda melihat sesuatu yang salah, beri tahu saya dengan membuka masalah di repositori GitHub ML_THINGS saya !
Banyak tutorial di luar sana sebagian besar ada satu hal dan tidak dipertahankan. Saya berencana untuk menjaga agar tutorial saya tetap up to date sebanyak yang saya bisa.
? GitHub: Gmihaila
Situs web: gmihaila.github.io
? LinkedIn: Mihailageorge
? Email: [email protected]