コマンド ジョブでパラメーターを使用する
パラメーターを使用すると、スクリプトの柔軟性を高めることができます。 機械学習モデルをトレーニングするスクリプトを作成したとします。 同じスクリプトを使用して、さまざまなデータセットでモデルをトレーニングしたり、さまざまなハイパーパラメーター値を使用したりできます。
スクリプト引数の操作
スクリプトでパラメーターを使用するには、 argparse などのライブラリを使用して、スクリプトに渡された引数を読み取り、変数に割り当てる必要があります。
たとえば、次のスクリプトは、トレーニング データへのパスを指定する training_data という名前の引数を読み取ります。
# import libraries
import argparse
import pandas as pd
from sklearn.linear_model import LogisticRegression
def main(args):
# read data
df = get_data(args.training_data)
# function that reads the data
def get_data(path):
df = pd.read_csv(path)
return df
def parse_args():
# setup arg parser
parser = argparse.ArgumentParser()
# add arguments
parser.add_argument("--training_data", dest='training_data',
type=str)
# parse args
args = parser.parse_args()
# return args
return args
# run script
if __name__ == "__main__":
# parse args
args = parse_args()
# run main function
main(args)
想定されるすべてのパラメーターは、スクリプトで定義する必要があります。 スクリプトでは、各パラメーターに必要な値の種類と、既定値を設定するかどうかを指定できます。
スクリプトに引数を渡す
スクリプトにパラメーター値を渡すには、コマンドで引数の値を指定する必要があります。
たとえば、ターミナルでスクリプトを実行するときにパラメーター値を渡す場合は、次のコマンドを使用します。
python train.py --training_data diabetes.csv
この例では、 diabetes.csv はローカル ファイルです。 または、Azure Machine Learning ワークスペースで作成されたデータ資産へのパスを指定することもできます。
同様に、コマンド ジョブとして実行するスクリプトにパラメーター値を渡す場合は、コマンドで値を指定します。
from azure.ai.ml import command
# configure job
job = command(
code="./src",
command="python train.py --training_data diabetes.csv",
environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest",
compute="aml-cluster",
display_name="train-model",
experiment_name="train-classification-model"
)
コマンド ジョブを送信したら、指定した入力パラメーターと出力パラメーターを確認できます。