RunConfiguration 類別
表示在 Azure Machine Learning 中以不同計算目標為目標的實驗執行設定。
RunConfiguration 物件會封裝在實驗中提交定型回合所需的資訊。 一般來說,您不會直接建立 RunConfiguration 物件,而是從傳回它的方法取得一個物件,例如 submit 類別的方法 Experiment 。
RunConfiguration 是基底環境設定,也會用於其他類型的設定步驟,這些步驟取決於您所觸發的執行類型。 例如,在設定時 PythonScriptStep ,您可以存取步驟的 RunConfiguration 物件,並設定 Conda 相依性或存取執行的環境屬性。
本文內容繼承
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElement
RunConfiguration
建構函式
RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)
參數
script
Python 腳本檔案的相對路徑。
檔案路徑會相對於傳遞給的來原始目錄 submit 。
arguments
Python 腳本檔案的命令列引數。
framework
執行中使用的目標架構。
支援的架構為 Python、PySpark、TensorFlow 和 PyTorch。
communicator
執行中使用的 communicator。
支援的外部為 None、ParameterServer、OpenMpi 和 IntelMpi。
請記住,OpenMpi 需要已安裝 OpenMpi 的自訂映射。
針對 AmlCompute 叢集使用 ParameterServer 或 OpenMpi。
使用 IntelMpi 進行分散式訓練作業。
conda_dependencies
當保留預設值 False 時,系統會建立 Python 環境,其中包含中指定的封裝 conda_dependencies 。
設定為 true 時,可以使用 python_interpreter 設定來指定現有的 Python 環境。
auto_prepare_environment
廢棄。 已不再使用此設定。
command
要提交執行的命令。 命令屬性也可以用來取代腳本/引數。
命令和腳本/引數屬性都不能用來提交執行。
若要使用命令屬性-[' python '、' train.py '、'--arg1 '、arg1_val] 來提交腳本檔,以執行實際的命令-[' ls ']
備註
我們會建立機器學習系統,通常用來解決特定的問題。 例如,我們可能會想要找出最適合作為查詢對應搜尋結果的網頁排名的最佳模型。 搜尋最佳的機器學習模型可能需要我們試用不同的演算法,或考慮不同的參數設定等等。
在 Azure Machine Learning SDK 中,我們會使用實驗的概念來捕捉不同定型回合與他們嘗試解決之問題相關的概念。 Experiment接著會作為這些定型回合的邏輯容器,讓您更輕鬆地追蹤定型回合之間的進度,以及直接比較兩個定型回合等等。
RunConfiguration 會封裝在實驗中提交定型回合所需的執行環境設定。 它會同時捕捉定型回合的共用結構,這些都是設計用來解決相同的機器學習問題,以及設定參數的差異 (例如學習速率、損失函式 ) 等等,可區分不同的定型執行。
在典型的定型案例中,RunConfiguration 是藉由建立 ScriptRunConfig 封裝 RunConfiguration 物件和定型執行腳本的物件來使用。
RunConfiguration 的設定包括:
將實驗來原始目錄(包括已提交的腳本)進行組合。
設定所提交腳本的命令列引數。
設定 Python 解譯器的路徑。
取得的 Conda 設定,以管理應用程式相依性。 作業提交程式可使用設定來布建 temp Conda 環境,並在中啟動應用程式。 暫存環境會快取,並在後續的執行中重複使用。
Docker 和自訂基底映射的選擇性使用方式。
將實驗提交至多個 Azure 計算類型的選擇性選項。
設定如何具體化輸入和上傳輸出的選擇性選項。
一般執行時間(例如 spark 和 tensorflow)的 Advanced runtime 設定。
下列範例顯示如何在本機電腦上提交定型腳本。
from azureml.core import ScriptRunConfig, RunConfiguration, Experiment
# create or load an experiment
experiment = Experiment(workspace, "MyExperiment")
# run a trial from the train.py code in your current directory
config = ScriptRunConfig(source_directory='.', script='train.py',
run_config=RunConfiguration())
run = experiment.submit(config)
下列範例示範如何使用命令屬性(而非腳本和引數),在您的叢集上提交定型腳本。
from azureml.core import ScriptRunConfig, Experiment
# create or load an experiment
experiment = Experiment(workspace, 'MyExperiment')
# create or retrieve a compute target
cluster = workspace.compute_targets['MyCluster']
# create or retrieve an environment
env = Environment.get(ws, name='MyEnvironment')
# configure and submit your training run
config = ScriptRunConfig(source_directory='.',
command=['python', 'train.py', '--arg1', arg1_val],
compute_target=cluster,
environment=env)
script_run = experiment.submit(config)
下列範例顯示如何在您的叢集上執行命令。
from azureml.core import ScriptRunConfig, Experiment
# create or load an experiment
experiment = Experiment(workspace, 'MyExperiment')
# create or retrieve a compute target
cluster = workspace.compute_targets['MyCluster']
# create or retrieve an environment
env = Environment.get(ws, name='MyEnvironment')
# configure and submit your training run
config = ScriptRunConfig(source_directory='.',
command=['ls', '-l'],
compute_target=cluster,
environment=env)
script_run = experiment.submit(config)
變數
environment
環境定義。 此欄位會設定 Python 環境。
您可以將它設定為使用現有的 Python 環境,或設定為實驗設定 temp 環境。 定義也負責設定必要的應用程式相依性。
max_run_duration_seconds
允許執行的時間上限。 如果系統所花費的時間超過此值,系統會嘗試自動取消執行。
node_count
要用於作業的節點數目。
priority
排程原則的作業優先順序。
用來停用和啟用實驗歷程記錄功能的設定區段。
當平臺設定為 PySpark 時,會使用 Spark 設定區段來設定提交作業的預設 Spark-thrift-sparkconf。
只有當目標設定為 Azure HDI compute 時,HDI configuration 區段才會生效。
HDI 設定是用來設定 YARN 部署模式。
預設部署模式為 cluster。
用來設定分散式 TensorFlow 參數的設定區段。
只有當 framework 設為 TensorFlow,並將設定為 ParameterServer 時,此參數才會生效 communicator 。 AmlCompute 是此設定唯一支援的計算。
用來設定分散式 MPI 作業參數的設定區段。
只有當 framework 設定為 Python,且 communicator 為 OpenMpi 或 IntelMpi 時,此參數才會生效。 AmlCompute 是此設定唯一支援的計算類型。
用來設定分散式 PyTorch 作業參數的設定區段。
只有當 framework 設為 PyTorch,且 communicator 為 Nccl 或 Gloo 時,此參數才會生效。 AmlCompute 是此設定唯一支援的計算類型。
用來設定分散式 paralleltask 作業參數的設定區段。
只有當 framework 設定為 Python,且要 ParallelTask 時,此參數才會生效 communicator 。 AmlCompute 是此設定唯一支援的計算類型。
所有的資料來源都可在執行期間根據每個設定來執行。 針對字典的每個專案,索引鍵是指定給資料來源的名稱,而值是 DataReferenceConfiguration。
要在執行期間提供給執行的所有資料。
output_data
所有應針對此執行上傳和追蹤的輸出。
source_directory_data_store
專案共用的支援資料存放區。
實驗期間要建立之計算目標的詳細資料。 只有在計算目標為 AmlCompute 時,設定才會生效。
方法
從磁片上的檔案載入先前儲存的執行設定檔。
如果 path 指向檔案,則會從該檔案載入 RunConfiguration。
如果 path 指向目錄(應該是專案目錄),則會從 < 路徑 > /.azureml/ < 名稱 > 或 < 路徑 > /aml_config/ < 名稱 > 載入 RunConfiguration。
將 RunConfiguration 儲存至磁片上的檔案。
無法使用指定的名稱來儲存 RunConfiguration。
未 name 指定任何參數。
path 參數無效。
如果的 path 格式是 /,其中 是有效的目錄,則會將 RunConfiguration 儲存在 /。
如果 path 指向目錄(應該是專案目錄),則 RunConfiguration 會儲存在 < path > /.azureml/ < name > 或 < path > /aml_config/ < name > 。
手動編輯設定時或與 CLI 共用設定時,這個方法很有用。
delete
刪除執行設定檔。
delete(path, name)
參數
path
使用者選取執行設定的根目錄。 這通常是 Git 存放庫或 Python 專案根目錄。 設定會從名為 azureml 的子目錄中刪除。
name
組態檔名稱。
load
從磁片上的檔案載入先前儲存的執行設定檔。
如果 path 指向檔案,則會從該檔案載入 RunConfiguration。
如果 path 指向目錄(應該是專案目錄),則會從 < 路徑 > /.azureml/ < 名稱 > 或 < 路徑 > /aml_config/ < 名稱 > 載入 RunConfiguration。
load(path, name=None)
參數
path
使用者選取執行設定的根目錄。 這通常是 Git 存放庫或 Python 專案根目錄。 為了與舊版相容,也會從 azureml 或 aml_config 子目錄載入設定。 如果檔案不在這些目錄中,則會從指定的路徑載入該檔案。
name
預設值: None
組態檔名稱。
傳回
執行設定物件。
傳回類型
save
將 RunConfiguration 儲存至磁片上的檔案。
無法使用指定的名稱來儲存 RunConfiguration。
未 name 指定任何參數。
path 參數無效。
如果的 path 格式是 /,其中 是有效的目錄,則會將 RunConfiguration 儲存在 /。
如果 path 指向目錄(應該是專案目錄),則 RunConfiguration 會儲存在 < path > /.azureml/ < name > 或 < path > /aml_config/ < name > 。
手動編輯設定時或與 CLI 共用設定時,這個方法很有用。
save(path=None, name=None, separate_environment_yaml=False)
參數
separate_environment_yaml
預設值: None
指出是否要儲存 Conda 環境設定。
若為 True,Conda 環境設定會儲存至名為 ' yml ' 的 YAML 檔案。
path
預設值: None
使用者選取執行設定的根目錄。 這通常是 Git 存放庫或 Python 專案根目錄。 設定會儲存至名為 azureml 的子目錄。
name
預設值: False
必設定檔案名稱。
傳回類型
屬性
auto_prepare_environment
取得 auto_prepare_environment 參數。 這是已淘汰且未使用的設定。
target
取得已排程執行作業的計算目標。
預設目標是指本機電腦的「本機」。 您可以使用函數來找到可用的雲端計算目標 compute_targets 。
傳回
目標名稱
傳回類型