機械学習物事は、機械学習、ディープラーニング、NLPで日常の研究で使用する機能とコードスニペットを含む軽量のPythonライブラリです。
私はこのリポジトリを作成しました。なぜなら、私は常に古いプロジェクトから同じコードを検索するのにうんざりしていて、Pythonライブラリの構築の経験を積みたかったからです。これをすべての人が利用できるようにすることで、コードに簡単にアクセスできます。バグや何かが意味がない場合は、お気軽に問題を開いてください。
それだけではありません!このライブラリには、機械学習ワークフローをスピードアップするPythonコードスニペットとノートブックも含まれています。
注記:
Feb 5, 2022あなたのサポートと親切をありがとうございました!このパッケージは現在Pypiで入手できます! pip install ml-thingsJuly 16, 2021あなたのサポートと親切をありがとうございました!私が約束したように、私はこのリポジトリをPIPインストールモジュールに移動します。ml_things :
スニペット:私が頻繁に使用するPythonスニペットのキュレーションリスト。
コメント:コードをコメントしたい方法をサンプリングします。まだ進行中の作業です。
ノートブックチュートリアル:私がチュートリアルに変換してオンラインで投稿した機械学習プロジェクト。
最終メモ:感謝していること。
このレポは、Python 3.6+でテストされています。
仮想環境にml_thingsをインストールすることは常に良い習慣です。 Pythonの仮想環境を使用することについてガイダンスを行う場合は、こちらのユーザーガイドをご覧ください。
GitHubからPIPでml_thingsをインストールできます。
pip install git+https://github.com/gmihaila/ml_thingsまたはPypiから:
pip install ml-thingsML_THINGSモジュールに実装されたすべての機能。
機械学習を操作するときに役立つ可能性のある配列操作関連機能。
固定されたnumpyアレイへのパッド変数長い配列。単一の配列[1,2,3]またはネストされた配列[[1,2]、[3]]を処理できます。
デフォルトでは、検出された行の最大長にゼロをパッドします。
> >> 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. ]])また、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. ]])リストをバッチ/チャンクに分割します。最後のバッチサイズはリスト値の残りです。注:これはチャンクとも呼ばれます。私はそれをMLでもっと使用するので、それをバッチと呼んでいます。
最後のバッチは、リーミニング値になります。
> >> 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 ]]機械学習を操作するときに役立つ可能性のある関連する関数をプロットします。
値の単一配列からプロットを作成します。
すべての引数は、クイックプロットのために最適化されています。 magnify引数を変更して、プロットのサイズを変更します。
> >> 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' )
値の単一配列からプロットを作成します。
すべての引数は、クイックプロットのために最適化されています。 magnify引数を変更して、プロットのサイズを変更します。
> >> 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' )
この関数は、混乱マトリックスを印刷およびプロットします。 normalize=True 。
すべての引数は、クイックプロットのために最適化されています。 magnify引数を変更して、プロットのサイズを変更します。
> >> 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 ]])
機械学習を使用するときに役立つテキスト関連の関数。
さまざまなテクニックを使用してテキストをきれいにします:
> >> 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'機械学習を使用するときに役立つWeb関連機能。
URLからファイルをダウンロードします。ダウンロードされたファイルのパスを返します:
> >> from ml_things import download_from
> >> download_from ( url = 'https://raw.githubusercontent.com/gmihaila/ml_things/master/setup.py' , path = '.' )
'./setup.py'これは、特定のテーマのない非常に多種多様なPythonスニペットです。論理的な順序を維持しながら、私はそれらを最も頻繁に使用するものに入れました。私はそれらを可能な限りシンプルで効率的にするのが好きです。
| 名前 | 説明 |
|---|---|
| ファイルを読み取ります | ファイルを読み取る1つのライナー。 |
| ファイルを書き込みます | ファイルに文字列を書き込む1つのライナー。 |
| デバッグ | このラインの後にデバッグを開始します。 |
| ピップインストールgithub | pipを使用してGitHubからライブラリを直接インストールします。 |
| 議論を解析します | .pyファイルを実行するときに与えられた引数を解析します。 |
| Doctest | function documentaitonを使用して単純なunittescを実行する方法。内部ノートブックを無視する必要がある場合に便利です。 |
| テキストを修正します | テキストデータは常に面倒なので、私は常にそれを使用しています。悪いユニコードを修正するのに最適です。 |
| 現在の日付 | Pythonで現在の日付を取得する方法。ログファイルに名前を付ける必要がある場合にこれを使用します。 |
| 現在の時刻 | Pythonで現在の時間を取得します。 |
| 句読点を削除します | Python3の句読点を除去する最速の方法。 |
| pytorch-dataset | Pytorchデータセットの作成方法に関するサンプルをコードします。 |
| pytorch-device | Pytorchでデバイスをセットアップする方法GPUが利用可能かどうかを検出します。 |
これらは、私が自分のコードをコメントするのが好きな方法のいくつかのスニペットです。人々が自分のコードをコメントする方法のさまざまな方法を見ました。一つ確かなことは、コメントがないよりもコメントが優れていることです。
私はPEP 8、つまりPythonコードのスタイルガイドをできる限りフォローしようとしています。
関数またはクラスにコメントするとき:
# 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 }ここで、以前のプロジェクトのノートブックを保管していて、それらを小さなチュートリアルに変えました。多くの場合、私はそれらを新しいプロジェクトを開始するための基礎として使用しています。
すべてのノートブックはGoogle Colabにあります。 Google Colabを聞いたことがありませんか? ? Colaboratoratoryの概要、ColabとPythonの紹介、およびProのようにGoogle Colabを構成するための素晴らしい中学記事だと思うことをチェックする必要があります。
/ml_things/notebooks/それらの多くはまだ「磨かれた」形式ではないため、ここにリストされていません。これらは、すべての人と共有するのに十分なノートブックです。
| 名前 | 説明 | リンク |
|---|---|---|
| ? pytorchtextバケテーターを使用したより良いバッチ | PytorchText Bucketiteratorを使用して、より良いバッチのためにテキストデータをソートする方法。 | |
| ?ハグするフェイストランスを使用して、Pytorchのプレアントランスモデル | カスタムデータセットのプレイン67トランスモデル。 | |
| ?ハグするフェイストランスを使用して、Pytorchで変圧器を微調整します | テキスト分類のために73の変圧器モデルを微調整する方法に関する完全なチュートリアル - コードの変更は必要ありません! | |
| ハグするフェイストランスを使用して、PytorchでのBert Inner Workings | 入力がBertを流れる方法に関する完全なチュートリアル。 | |
| ?抱きしめる顔を使用したテキスト分類のためのGPT2?トランス | テキスト分類にGPT2を使用する方法に関する完全なチュートリアル。 |
私のレポをチェックしていただきありがとうございます。私は完璧主義者なので、詳細については多くの変更を加えます。
何か間違ったものが表示されたら、 ML_THINGS GitHubリポジトリに問題を開いてお知らせください!
多くのチュートリアルは、ほとんどが1回限りのものであり、維持されていません。私は自分のチュートリアルをできる限り最新の状態に保つことを計画しています。
? Github:Gmihaila
ウェブサイト:gmihaila.github.io
? LinkedIn:Mihailageorge
?メール:[email protected]