Pythonでパラメータを解析する3つの方法を詳しく解説
この記事では、Python に関する関連知識を提供します。主に、パラメーターを解析する 3 つの方法に関連する問題をまとめています。最初のオプションは、コマンド ラインに特に使用される、人気のある Python モジュールである argparse を使用することです。解析; もう 1 つの方法は、すべてのハイパーパラメータを配置できる JSON ファイルを読み取ることです。3 番目のあまり知られていない方法は、YAML ファイルを使用することです。一緒に見てみましょう。役立つことを願っています。全員が役に立ちます。
[関連する推奨事項: Python3 ビデオ チュートリアル ]
今日共有する内容の主な目的は、コマンド ラインとコード効率を向上させるための設定ファイル
それでは、いきましょう!
機械学習のパラメータ調整プロセスを練習に使用します。3 つの方法から選択できます。最初のオプションは、コマンド ライン解析専用の人気のある Python モジュールである argparse を使用することです。もう 1 つは、すべてのハイパーパラメータを配置できる JSON ファイルを読み取ることです。3 番目のオプションもあまり知られていません。解決策は、YAML ファイルを使用することです。興味があるなら、始めましょう!
前提条件
以下のコードでは、非常に効率的な統合 Python 開発環境である Visual Studio Code を使用します。このツールの利点は、拡張機能をインストールすることであらゆるプログラミング言語をサポートし、ターミナルを統合し、Kaggle の Shared Bicycle Dataset## を使用して、多数の Python スクリプトと Jupyter ノートブック
データセットを操作できることです
#argparse の使用 上の図に示すように、小さなプロジェクトを整理するための標準構造があります。
- データが含まれます フォルダーを設定します名前付きの data
- train.py ファイル
- options.py ハイパーパラメータを指定するファイル
import pandas as pd import numpy as np from sklearn.ensemble import RandomForestRegressor from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.metrics import mean_squared_error, mean_absolute_error from options import train_options df = pd.read_csv('data\hour.csv') print(df.head()) opt = train_options() X=df.drop(['instant','dteday','atemp','casual','registered','cnt'],axis=1).values y =df['cnt'].values X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) if opt.normalize == True: scaler = StandardScaler() X = scaler.fit_transform(X) rf = RandomForestRegressor(n_estimators=opt.n_estimators,max_features=opt.max_features,max_depth=opt.max_depth) model = rf.fit(X_train,y_train) y_pred = model.predict(X_test) rmse = np.sqrt(mean_squared_error(y_pred, y_test)) mae = mean_absolute_error(y_pred, y_test) print("rmse: ",rmse) print("mae: ",mae)
import argparse def train_options(): parser = argparse.ArgumentParser() parser.add_argument("--normalize", default=True, type=bool, help='maximum depth') parser.add_argument("--n_estimators", default=100, type=int, help='number of estimators') parser.add_argument("--max_features", default=6, type=int, help='maximum of features',) parser.add_argument("--max_depth", default=5, type=int,help='maximum depth') opt = parser.parse_args() return opt
python train.py
ハイパーパラメータのデフォルト値を変更するには、2 つの方法があります。最初のオプションは、options.py ファイルに異なるデフォルト値を設定することです。別のオプションは、コマンド ラインからハイパーパラメータ値を渡すことです。
python train.py --n_estimators 200
python train.py --n_estimators 200 --max_depth 7
以前と同様に、同様のファイル構造を維持できます。この場合、options.py ファイルを JSON ファイルに置き換えます。つまり、JSON ファイルでハイパーパラメータの値を指定し、train.py ファイルに渡したいと考えます。 JSON ファイルは、キーと値のペアを利用してデータを保存するため、argparse ライブラリに代わる高速かつ直感的な代替手段となります。次に、後で他のコードに渡す必要があるデータを含む options.json ファイルを作成します。
{ "normalize":true, "n_estimators":100, "max_features":6, "max_depth":5 }
f = open("options.json", "rb") parameters = json.load(f)
if parameters["normalize"] == True: scaler = StandardScaler() X = scaler.fit_transform(X) rf=RandomForestRegressor(n_estimators=parameters["n_estimators"],max_features=parameters["max_features"],max_depth=parameters["max_depth"],random_state=42) model = rf.fit(X_train,y_train) y_pred = model.predict(X_test)
最後のオプションは、YAML の可能性を活用することです。 JSON ファイルと同様に、YAML ファイルを Python コードで辞書として読み取り、ハイパーパラメータの値にアクセスします。 YAML は人間が判読できるデータ表現言語であり、JSON ファイルのような括弧ではなくダブルスペース文字を使用して階層が表現されます。以下に、options.yaml ファイルの内容を示します。
normalize: True n_estimators: 100 max_features: 6 max_depth: 5
import yaml f = open('options.yaml','rb') parameters = yaml.load(f, Loader=yaml.FullLoader)
最終考察
設定ファイルは非常に速くコンパイルされますが、argparse では追加する引数ごとに 1 行のコードを記述する必要があります。
したがって、さまざまな状況に応じて最適な方法を選択する必要があります。
たとえば、パラメータにコメントを追加する必要がある場合、JSON はコメントを許可しないため適していません。YAML は適していません。 argparse が適しているかもしれません。
【関連する推奨事項: Python3 ビデオ チュートリアル ]
以上がPythonでパラメータを解析する3つの方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。
