Run 類別

定義所有 Azure Machine Learning 實驗執行的基類。

回合代表實驗的單一試用版。 執行可用來監視試用版的非同步執行、記錄計量和儲存試用版的輸出,以及分析試用版所產生的結果和存取成品。

當您提交腳本以在 Azure Machine Learning 的許多不同案例中定型模型時,會建立執行物件,包括 HyperDrive 執行、管線執行和 AutoML 執行。 當您 submitstart_logging 使用 Experiment 類別時,也會建立 Run 物件。

若要開始使用實驗和執行,請參閱

初始化 Run 物件。

繼承
azureml._run_impl.run_base._RunBase
Run

建構函式

Run(experiment, run_id, outputs=None, **kwargs)

參數

experiment
Experiment
必要

包含實驗的 。

run_id
str
必要

執行的識別碼。

outputs
str
預設值: None

要追蹤的輸出。

_run_dto
<xref:azureml._restclient.models.run_dto.RunDto>
必要

僅供內部使用。

kwargs
dict
必要

其他組態參數的字典。

experiment
Experiment
必要

包含實驗的 。

run_id
str
必要

執行的識別碼。

outputs
str
必要

要追蹤的輸出。

kwargs
dict
必要

其他組態參數的字典。

備註

回合代表實驗的單一試用版。 Run 物件可用來監視試用版的非同步執行、記錄計量和儲存試用版的輸出,以及分析試用所產生的結果和存取成品。

測試程式碼內會使用 Run Run,將計量和成品記錄到執行歷程記錄服務。

執行會在實驗之外用來監視進度,以及查詢及分析產生的計量和結果。

Run 的功能包括:

  • 儲存和擷取計量和資料

  • 上傳和下載檔案

  • 使用標記和子階層,輕鬆查閱過去的執行

  • 將預存的模型檔案註冊為可運作的模型

  • 儲存、修改及擷取執行的屬性

  • 使用 get_context 方法從遠端環境載入目前的執行

  • 有效率地建立檔案或目錄的快照,以便重現

此類別適用于 Experiment 下列案例中的 :

  • 使用 執行程式碼來建立執行 submit

  • 使用 在筆記本中以互動方式建立執行 start_logging

  • 記錄計量並在實驗中上傳成品,例如使用時 log

  • 在分析實驗結果時讀取計量和下載成品,例如使用時 get_metrics

若要提交回合,請建立描述實驗執行方式的組態物件。 以下是您可以使用的不同組態物件的範例:

  • ScriptRunConfig

  • azureml.train.automl.automlconfig.AutoMLConfig

  • azureml.train.hyperdrive.HyperDriveConfig

  • azureml.pipeline.core.Pipeline

  • azureml.pipeline.core.PublishedPipeline

  • azureml.pipeline.core.PipelineEndpoint

訓練實驗時,可以將下列計量新增到執行中。

  • 純量

    • 使用 log 將數值或字串值記錄至具有指定名稱的執行。 將計量記錄到執行中,會導致該計量儲存在實驗的執行記錄中。 您可以在執行中多次記錄相同的計量,結果會視為該計量的向量。

    • 範例: run.log("accuracy", 0.95)

  • List

    • 使用 log_list 將值清單記錄至具有指定名稱的執行。

    • 範例: run.log_list("accuracies", [0.6, 0.7, 0.87])

  • 資料列

    • 使用 log_row 會建立具有多個資料行的計量,如 中所述 kwargs 。 每個具名的參數都會產生一個具有指定值的資料行。 log_row 可以呼叫一次以記錄任意 Tuple,或在迴圈中多次產生完整資料表。

    • 範例: run.log_row("Y over X", x=1, y=0.4)

  • 資料表

    • 使用 log_table 將字典物件記錄至具有指定名稱的執行。

    • 範例: run.log_table("Y over X", {"x":[1, 2, 3], "y":[0.6, 0.7, 0.89]})

  • 映像

    • 將映像記錄到執行記錄中。 使用 log_image 將影像檔或 matplotlib 繪圖記錄到執行。 這些映像會顯示在執行記錄中,並可供比較。

    • 範例: run.log_image("ROC", path)

方法

add_properties

將不可變的屬性新增至執行。

標籤和屬性 (dict[str, str]) 其可變性不同。 屬性是不可變的,因此屬性會建立用於進行稽核的永久記錄。 標籤是可變動的。 如需使用標記和屬性的詳細資訊,請參閱 標記和尋找執行

add_type_provider

儲存在執行歷程記錄中的自訂執行類型擴充性勾點。

cancel

將執行標示為已取消。

如果有與集合cancel_uri欄位相關聯的作業,也請終止該作業。

child_run

建立子執行。

clean

移除對應至執行組態中所指定目標上目前執行的檔案。

complete

等候工作佇列進行處理。

然後執行會標示為已完成。 這通常用於互動式 Notebook 環境。

create_children

建立一或多個子執行。

download_file

從儲存體下載相關聯的檔案。

download_files

如果未指定前置詞,請從指定的儲存體前置詞 (資料夾名稱下載檔案) 或整個容器。

fail

將執行標示為失敗。

選擇性地設定 Run 的 Error 屬性,並傳遞至 error_details 的訊息或例外狀況。

flush

等候工作佇列進行處理。

get

取得此工作區的執行及其執行識別碼。

get_all_logs

將執行的所有記錄下載至目錄。

get_children

取得指定篩選所選取目前執行的所有子系。

get_context

傳回目前的服務內容。

使用這個方法來擷取記錄計量和上傳檔案的目前服務內容。 如果 為 allow_offline True (預設) ,則會列印 Run 物件的動作以標準輸出。

get_detailed_status

擷取執行的最新狀態。 如果執行的狀態為「已排入佇列」,則會顯示詳細資料。

get_details

取得執行的定義、狀態資訊、目前的記錄檔和其他詳細資料。

get_details_with_logs

傳回執行狀態,包括記錄檔內容。

get_environment

取得此執行所使用的環境定義。

get_file_names

列出與執行相關聯的儲存檔案。

get_metrics

擷取記錄至執行的計量。

如果 recursive 預設為 True (False) ,則擷取指定回合子樹中執行的計量。

get_properties

從服務擷取執行的最新屬性。

get_secret

從執行的內容取得秘密值。

取得所提供名稱的秘密值。 秘密名稱會參考與工作區相關聯的 Azure 金鑰保存庫中所儲存的值。 如需使用秘密的範例,請參閱 在定型回合中使用秘密

get_secrets

取得指定秘密名稱清單的秘密值。

取得所提供名稱清單的找到和找不到秘密的字典。 每個秘密名稱都會參考與工作區相關聯的 Azure 金鑰保存庫中所儲存的值。 如需使用秘密的範例,請參閱 在定型回合中使用秘密

get_snapshot_id

取得最新的快照集識別碼。

get_status

擷取執行的最新狀態。

傳回的常見值包括「執行中」、「已完成」和「失敗」。

get_submitted_run

已淘汰。 請使用 get_context

取得此實驗的提交回合。

get_tags

從服務擷取執行時的最新一組可變動標記。

list

取得選擇性篩選所指定實驗中的執行清單。

list_by_compute

在選擇性篩選所指定的計算中取得執行清單。

log

使用指定名稱將計量值記錄到執行中。

log_accuracy_table

將精確度資料表記錄到成品存放區。

精確度資料表計量是一種多用途的非純量計量,可用來產生多種折線圖類型,這些折線圖會隨著預測機率的空間而持續變化。 這些圖表的範例包括 ROC、精確度召回率和增益曲線。

精確度資料表的計算類似于 ROC 曲線的計算。 ROC 曲線會以許多不同的機率臨界值來儲存真肯定率和誤判率。 精確度資料表會儲存許多機率臨界值的原始真數、誤判、真負數和誤判。

選取臨界值的方法有兩種:「probability」 和 「percentile」。它們與預測機率的空間取樣方式不同。

機率臨界值是介於 0 到 1 之間的統一間距臨界值。 如果NUM_POINTS為 5,機率臨界值會是 [0.0, 0.25, 0.5, 0.75, 1.0]。

百分位數閾值會根據預測機率的分佈來分隔。 每個臨界值都會對應至機率臨界值的資料百分位數。 例如,如果NUM_POINTS為 5,則第一個臨界值會是第 0 個百分位數、第二個百分位數為第 25 個百分位數、第三個百分位數,依此類傳。

機率資料表和百分位數資料表都是 3D 清單,其中第 (一個維度代表類別標籤,第二個維度代表具有NUM_POINTS) 的臨界值,而第三個維度一律有 4 個值:TP、FP、TN、FN,且一律依該順序排列。

TP、FP、TN、FN) (混淆值是使用一個與其余策略來計算。 如需詳細資訊,請參閱下列連結: https://en.wikipedia.org/wiki/Multiclass_classification

範例) M = # thresholds = # samples in example (200 中的範例 (200 # samples,取自範例中 (5 的機率空間) C = # 類別 (3,例如)

精確度資料表的一些不變數:

  • TP + FP + TN + FN = N 代表所有類別的所有閾值
  • TP + FN 在任何類別的所有閾值都相同
  • TN + FP 在任何類別的所有閾值都相同
  • 機率資料表和百分位數資料表具有圖形 [C、M、4]

注意:M 可以是任何值,並控制圖表的解析度:這與資料集無關、在計算計量時定義,以及取捨儲存空間、計算時間和解析。

類別標籤應該是字串、混淆值應該是整數,而臨界值應該是浮點數。

log_confusion_matrix

將混淆矩陣記錄至成品存放區。

這會記錄 sklearn 混淆矩陣周圍的包裝函式。 計量資料包含矩陣本身的類別標籤和 2D 清單。 如需如何計算計量的詳細資訊,請參閱下列連結: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

log_image

記錄映像計量以執行記錄。

log_list

使用指定名稱將計量值清單記錄至執行。

log_predictions

將預測記錄至成品存放區。

這會記錄計量分數,可用來比較真實目標值的分佈與回歸工作的預測值分佈。

預測會量化,而標準差會針對折線圖上的誤差線計算。

log_residuals

將剩餘記錄到成品存放區。

這會記錄顯示回歸工作殘差長條圖所需的資料。 預測殘差 - 實際。

應該有一個比計數數目更多的邊緣。 如需使用計數和邊緣來代表長條圖的範例,請參閱 numpy 長條圖檔。 https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

log_row

使用指定名稱將資料列計量記錄至執行。

log_table

使用指定名稱將資料表計量記錄到執行中。

register_model

註冊模型以進行作業化。

remove_tags

刪除此執行時可變動標記的清單。

restore_snapshot

將快照集還原為 ZIP 檔案。 傳回 ZIP 的路徑。

set_tags

在執行時新增或修改一組標記。 未在字典中傳遞的標籤會保持不變。

您也可以新增簡單的字串標記。 當這些標籤以索引鍵的形式出現在標籤字典中時,它們的值為 None。 如需詳細資訊,請參閱 標記和尋找執行

start

將執行標示為已啟動。

當執行已由另一個動作專案建立時,這通常用於進階案例。

submit_child

提交實驗並傳回作用中的子回合。

tag

使用字串索引鍵和可選字串值標記執行。

take_snapshot

儲存輸入檔或資料夾的快照集。

upload_file

將檔案上傳到執行記錄。

upload_files

將檔案上傳至執行記錄。

upload_folder

將指定的資料夾上傳至指定的前置詞名稱。

wait_for_completion

等候此執行完成。 在等候之後傳回狀態物件。

add_properties

將不可變的屬性新增至執行。

標籤和屬性 (dict[str, str]) 其可變性不同。 屬性是不可變的,因此屬性會建立用於進行稽核的永久記錄。 標籤是可變動的。 如需使用標記和屬性的詳細資訊,請參閱 標記和尋找執行

add_properties(properties)

參數

properties
dict
必要

儲存在 run 物件中的隱藏屬性。

add_type_provider

儲存在執行歷程記錄中的自訂執行類型擴充性勾點。

static add_type_provider(runtype, run_factory)

參數

runtype
str
必要

將叫用處理站的 Run.type 值。 範例包括 'hyperdrive' 或 'azureml.scriptrun',但可以使用自訂類型來擴充。

run_factory
<xref:function>
必要

具有簽章的函式 (實驗、RunDto) - > 列出執行時要叫用的執行。

cancel

將執行標示為已取消。

如果有與集合cancel_uri欄位相關聯的作業,也請終止該作業。

cancel()

child_run

建立子執行。

child_run(name=None, run_id=None, outputs=None)

參數

name
str
預設值: None

子回合的選擇性名稱,通常為 「part」 指定。

run_id
str
預設值: None

子系的選擇性執行識別碼,否則會自動產生。 通常未設定此參數。

outputs
str
預設值: None

要追蹤子系的選擇性輸出目錄。

傳回

子執行。

傳回類型

Run

備註

這可用來隔離子區段的一部分。 這可以針對有趣的執行「元件」進行識別,或擷取子進程交錯之間的獨立計量。

如果已為子執行設定輸出目錄,當子系完成時,該目錄的內容將會上傳至子執行記錄。

clean

移除對應至執行組態中所指定目標上目前執行的檔案。

clean()

傳回

已刪除的檔案清單。

傳回類型

complete

等候工作佇列進行處理。

然後執行會標示為已完成。 這通常用於互動式 Notebook 環境。

complete(_set_status=True)

參數

_set_status
bool
預設值: True

指出是否要傳送狀態事件以進行追蹤。

create_children

建立一或多個子執行。

create_children(count=None, tag_key=None, tag_values=None)

參數

count
int
預設值: None

要建立的選擇性子係數目。

tag_key
str
預設值: None

選擇性索引鍵,可填入所有已建立子系中的 Tags 專案。

tag_Values
必要

將對應至所建立執行清單之 Tags[tag_key] 的選擇性值清單。

tag_values
預設值: None

傳回

子執行的清單。

傳回類型

備註

必須指定任一參數 count OR 參數 tag_key AND tag_values

download_file

從儲存體下載相關聯的檔案。

download_file(name, output_file_path=None, _validate_checksum=False)

參數

name
str
必要

要下載之成品的名稱。

output_file_path
str
必要

要儲存成品的本機路徑。

download_files

如果未指定前置詞,請從指定的儲存體前置詞 (資料夾名稱下載檔案) 或整個容器。

download_files(prefix=None, output_directory=None, output_paths=None, batch_size=100, append_prefix=True, timeout_seconds=None)

參數

prefix
str
必要

要從中下載所有成品之容器內的 filepath 前置詞。

output_directory
str
必要

所有成品路徑都用來作為前置詞的選擇性目錄。

output_paths
[str]
必要

要在其中儲存已下載成品的選擇性檔案路徑。 路徑長度應是唯一且相符的。

batch_size
int
必要

每個批次要下載的檔案數目。 預設值為 100 個檔案。

append_prefix
bool
必要

選擇性旗標,是否要從最終輸出檔路徑附加指定的前置詞。 如果為 False,則會從輸出檔案路徑中移除前置詞。

timeout_seconds
int
必要

下載檔案的逾時。

fail

將執行標示為失敗。

選擇性地設定 Run 的 Error 屬性,並傳遞至 error_details 的訊息或例外狀況。

fail(error_details=None, error_code=None, _set_status=True)

參數

error_details
strBaseException
預設值: None

錯誤的選擇性詳細資料。

error_code
str
預設值: None

錯誤分類的錯誤選擇性錯誤碼。

_set_status
bool
預設值: True

指出是否要傳送狀態事件以進行追蹤。

flush

等候工作佇列進行處理。

flush(timeout_seconds=300)

參數

timeout_seconds
int
預設值: 300

等候 (多久,) 才能處理工作佇列。

get

取得此工作區的執行及其執行識別碼。

static get(workspace, run_id)

參數

workspace
Workspace
必要

包含工作區。

run_id
string
必要

執行識別碼。

傳回

提交的執行。

傳回類型

Run

get_all_logs

將執行的所有記錄下載至目錄。

get_all_logs(destination=None)

參數

destination
str
預設值: None

儲存記錄的目的地路徑。 如果未指定,則會在專案目錄中建立名為 的執行識別碼的目錄。

傳回

已下載的記錄名稱清單。

傳回類型

get_children

取得指定篩選所選取目前執行的所有子系。

get_children(recursive=False, tags=None, properties=None, type=None, status=None, _rehydrate_runs=True)

參數

recursive
bool
預設值: False

指出是否要遞迴所有子系。

tags
strdict
預設值: None

如果指定,則會傳回符合指定 「tag」 或 {「tag」「value」} 的執行。

properties
strdict
預設值: None

如果指定,則會傳回符合指定 「property」 或 {「property」「value」} 的執行。

type
str
預設值: None

如果指定,則會傳回符合此類型的執行。

status
str
預設值: None

如果指定,則會傳回狀態指定 為 「status」 的執行

_rehydrate_runs
bool
預設值: True

指出要具現化原始類型或基底 Run 的執行。

傳回

Run 物件的清單。

傳回類型

get_context

傳回目前的服務內容。

使用這個方法來擷取記錄計量和上傳檔案的目前服務內容。 如果 為 allow_offline True (預設) ,則會列印 Run 物件的動作以標準輸出。

get_context(allow_offline=True, used_for_context_manager=False, **kwargs)

參數

cls
必要

表示類別方法。

allow_offline
bool
預設值: True

允許服務內容回復為離線模式,以便在本機測試定型腳本,而不需使用 SDK 提交作業。 預設為 true。

kwargs
dict
必要

其他參數的字典。

used_for_context_manager
預設值: False

傳回

提交的執行。

傳回類型

Run

備註

此函式通常用於擷取要透過 experiment.submit () 提交執行之腳本內的已驗證 Run 物件。 此執行物件同時是與 Azure Machine Learning 服務通訊的已驗證內容,以及包含計量、檔案 (成品) 和模型的概念容器。


   run = Run.get_context() # allow_offline=True by default, so can be run locally as well
   ...
   run.log("Accuracy", 0.98)
   run.log_row("Performance", epoch=e, error=err)

get_detailed_status

擷取執行的最新狀態。 如果執行的狀態為「已排入佇列」,則會顯示詳細資料。

get_detailed_status()

傳回

最新狀態和詳細資料

傳回類型

備註

  • status:執行目前的狀態。 與從 get_status () 傳回的值相同。

  • 詳細資料:目前狀態的詳細資訊。


   run = experiment.submit(config)
   details = run.get_detailed_status()
   # details = {
   #     'status': 'Queued',
   #     'details': 'Run requested 1 node(s). Run is in pending status.',
   # }

get_details

取得執行的定義、狀態資訊、目前的記錄檔和其他詳細資料。

get_details()

傳回

傳回執行的詳細資料

傳回類型

備註

傳回的字典包含下列機碼/值組:

  • runId:此回合的識別碼。

  • 目標

  • status:執行目前的狀態。 與從 get_status () 傳回的值相同。

  • startTimeUtc:ISO8601 中啟動此執行時的 UTC 時間。

  • endTimeUtc:ISO8601 中此執行完成 (完成或失敗) 的 UTC 時間。

    如果執行仍在進行中,則不存在此索引鍵。

  • 屬性:與回合相關聯的不可變索引鍵/值組。 如果有任何) ,預設屬性包括執行快照集識別碼,以及建立執行所在 git 存放庫的相關資訊 (。 您可以使用 將其他屬性新增至執行 add_properties

  • inputDatasets:與執行相關聯的輸入資料集。

  • outputDatasets:輸出與執行相關聯的資料集。

  • logFiles

  • submittedBy


   run = experiment.start_logging()

   details = run.get_details()
   # details = {
   #     'runId': '5c24aa28-6e4a-4572-96a0-fb522d26fe2d',
   #     'target': 'sdk',
   #     'status': 'Running',
   #     'startTimeUtc': '2019-01-01T13:08:01.713777Z',
   #     'endTimeUtc': '2019-01-01T17:15:65.986253Z',
   #     'properties': {
   #         'azureml.git.repository_uri': 'https://example.com/my/git/repo',
   #         'azureml.git.branch': 'master',
   #         'azureml.git.commit': '7dc972657c2168927a02c3bc2b161e0f370365d7',
   #         'azureml.git.dirty': 'True',
   #         'mlflow.source.git.repoURL': 'https://example.com/my/git/repo',
   #         'mlflow.source.git.branch': 'master',
   #         'mlflow.source.git.commit': '7dc972657c2168927a02c3bc2b161e0f370365d7',
   #         'ContentSnapshotId': 'b4689489-ce2f-4db5-b6d7-6ad11e77079c'
   #     },
   #     'inputDatasets': [{
   #         'dataset': {'id': 'cdebf245-701d-4a68-8055-41f9cf44f298'},
   #         'consumptionDetails': {
   #             'type': 'RunInput',
   #             'inputName': 'training-data',
   #             'mechanism': 'Mount',
   #             'pathOnCompute': '/mnt/datasets/train'
   #         }
   #     }],
   #     'outputDatasets': [{
   #         'dataset': {'id': 'd04e8a19-1caa-4b1f-b318-4cbff9af9615'},
   #         'outputType': 'RunOutput',
   #         'outputDetails': {
   #             'outputName': 'training-result'
   #         }
   #     }],
   #     'runDefinition': {},
   #     'logFiles': {},
   #     'submittedBy': 'Alan Turing'
   # }

get_details_with_logs

傳回執行狀態,包括記錄檔內容。

get_details_with_logs()

傳回

傳回使用記錄檔內容的執行狀態。

傳回類型

get_environment

取得此執行所使用的環境定義。

get_environment()

傳回

傳回環境物件。

傳回類型

get_file_names

列出與執行相關聯的儲存檔案。

get_file_names()

傳回

現有成品的路徑清單

傳回類型

get_metrics

擷取記錄至執行的計量。

如果 recursive 預設為 True (False) ,則擷取指定回合子樹中執行的計量。

get_metrics(name=None, recursive=False, run_type=None, populate=False)

參數

name
str
預設值: None

計量的名稱。

recursive
bool
預設值: False

指出是否要遞迴所有子系。

run_type
str
預設值: None
populate
bool
預設值: False

指出是否要擷取連結至計量的外部資料內容。

傳回

包含使用者計量的字典。

傳回類型

備註


   run = experiment.start_logging() # run id: 123
   run.log("A", 1)
   with run.child_run() as child: # run id: 456
       child.log("A", 2)

   metrics = run.get_metrics()
   # metrics = { 'A': 1 }

   metrics = run.get_metrics(recursive=True)
   # metrics = { '123': { 'A': 1 }, '456': { 'A': 2 } } note key is runId

get_properties

從服務擷取執行的最新屬性。

get_properties()

傳回

執行的屬性。

傳回類型

備註

屬性是不可變的系統產生資訊,例如持續時間、執行日期、使用者,以及使用 方法新增的 add_properties 自訂屬性。 如需詳細資訊,請參閱 標記和尋找執行

將作業提交至 Azure Machine Learning 時,如果來源檔案儲存在本機 Git 存放庫中,則會將存放庫的相關資訊儲存為屬性。 建立執行或呼叫 Experiment.submit 時,會新增這些 git 屬性。 如需 Git 屬性的詳細資訊,請參閱 Azure Machine Learning 的 Git 整合

get_secret

從執行的內容取得秘密值。

取得所提供名稱的秘密值。 秘密名稱會參考與工作區相關聯的 Azure 金鑰保存庫中所儲存的值。 如需使用秘密的範例,請參閱 在定型回合中使用秘密

get_secret(name)

參數

name
str
必要

要傳回秘密的秘密名稱。

傳回

秘密值。

傳回類型

str

get_secrets

取得指定秘密名稱清單的秘密值。

取得所提供名稱清單的找到和找不到秘密的字典。 每個秘密名稱都會參考與工作區相關聯的 Azure 金鑰保存庫中所儲存的值。 如需使用秘密的範例,請參閱 在定型回合中使用秘密

get_secrets(secrets)

參數

secrets
list[str]
必要

要傳回秘密值的秘密名稱清單。

傳回

傳回找到且找不到秘密的字典。

傳回類型

dict[<xref:str: str>]

get_snapshot_id

取得最新的快照集識別碼。

get_snapshot_id()

傳回

最新的快照集識別碼。

傳回類型

str

get_status

擷取執行的最新狀態。

傳回的常見值包括「執行中」、「已完成」和「失敗」。

get_status()

傳回

最新狀態。

傳回類型

str

備註

  • NotStarted - 這是雲端提交之前,用戶端 Run 物件的暫時狀態。

  • 啟動 - 執行已在雲端中開始處理。 呼叫端此時有執行識別碼。

  • 布建 - 針對指定的作業提交建立隨選計算時傳回。

  • 準備 - 正在準備執行環境:

    • docker 映射組建

    • conda 環境設定

  • 已排入佇列 - 作業已排入計算目標中的佇列。 例如,在 BatchAI 中,作業處於佇列狀態

    等候所有要求的節點準備就緒時。

  • 執行 - 作業已開始在計算目標中執行。

  • 完成 - 使用者程式碼已完成,且執行處於後續處理階段。

  • CancelRequested - 作業已要求取消。

  • 已完成 - 執行成功完成。 這包括使用者程式碼和執行

    後續處理階段。

  • 失敗 - 執行失敗。 執行上的 Error 屬性通常會提供原因的詳細資料。

  • 已取消 - 遵循取消要求,並指出現在已成功取消執行。

  • NotResponding - 針對已啟用活動訊號的執行,最近不會傳送活動訊號。


   run = experiment.submit(config)
   while run.get_status() not in ['Completed', 'Failed']: # For example purposes only, not exhaustive
       print('Run {} not in terminal state'.format(run.id))
       time.sleep(10)

get_submitted_run

已淘汰。 請使用 get_context

取得此實驗的提交回合。

get_submitted_run(**kwargs)

傳回

提交的回合。

傳回類型

Run

get_tags

從服務擷取執行時的最新一組可變動標記。

get_tags()

傳回

儲存在 run 物件上的標記。

傳回類型

list

取得選擇性篩選所指定實驗中的執行清單。

static list(experiment, type=None, tags=None, properties=None, status=None, include_children=False, _rehydrate_runs=True)

參數

experiment
Experiment
必要

包含實驗的 。

type
str
預設值: None

如果指定,則會傳回符合指定類型的執行。

tags
strdict
預設值: None

如果指定,則會傳回符合指定 「tag」 或 {「tag」「value」} 的執行。

properties
strdict
預設值: None

如果指定,則會傳回符合指定 「property」 或 {「property」「value」} 的執行。

status
str
預設值: None

如果指定,則會傳回狀態為指定的 「狀態」的執行。

include_children
bool
預設值: False

如果設定為 true,則擷取所有執行,不只擷取最上層執行。

_rehydrate_runs
bool
預設值: True

如果預設設定為 True () ,則會使用已註冊的提供者來重新設定該類型的 物件,而不是基底 Run。

傳回

執行清單。

傳回類型

備註

下列程式碼範例顯示 方法的 list 一些用法。


   favorite_completed_runs = Run.list(experiment, status='Completed', tags='favorite')

   all_distinct_runs = Run.list(experiment)
   and_their_children = Run.list(experiment, include_children=True)

   only_script_runs = Run.list(experiment, type=ScriptRun.RUN_TYPE)

list_by_compute

在選擇性篩選所指定的計算中取得執行清單。

static list_by_compute(compute, type=None, tags=None, properties=None, status=None)

參數

compute
ComputeTarget
必要

包含計算的 。

type
str
預設值: None

如果指定,則會傳回符合指定類型的執行。

tags
strdict
預設值: None

如果指定,則會傳回符合指定 「tag」 或 {「tag」「value」} 的執行。

properties
strdict
預設值: None

如果指定,則會傳回符合指定 「property」 或 {「property」「value」} 的執行。

status
str
預設值: None

如果指定,則會傳回狀態為指定的 「狀態」的執行。 只有允許的值是「執行中」和「已排入佇列」。

傳回

~_restclient.models.RunDto 的產生器

傳回類型

<xref:builtin.generator>

log

使用指定名稱將計量值記錄到執行中。

log(name, value, description='', step=None)

參數

name
str
必要

計量的名稱。

value
必要

要張貼至服務的值。

description
str
必要

選擇性計量描述。

step
int
預設值: None

選擇性座標軸,可在計量內指定值順序。

備註

將計量記錄到執行中,會導致該計量儲存在實驗的執行記錄中。 您可以在執行中多次記錄相同的計量,結果會視為該計量的向量。 如果已針對計量指定步驟,則必須針對所有值指定。

log_accuracy_table

將精確度資料表記錄到成品存放區。

精確度資料表計量是一種多用途的非純量計量,可用來產生多種折線圖類型,這些折線圖會隨著預測機率的空間而持續變化。 這些圖表的範例包括 ROC、精確度召回率和增益曲線。

精確度資料表的計算類似于 ROC 曲線的計算。 ROC 曲線會以許多不同的機率臨界值來儲存真肯定率和誤判率。 精確度資料表會儲存許多機率臨界值的原始真數、誤判、真負數和誤判。

選取臨界值的方法有兩種:「probability」 和 「percentile」。它們與預測機率的空間取樣方式不同。

機率臨界值是介於 0 到 1 之間的統一間距臨界值。 如果NUM_POINTS為 5,機率臨界值會是 [0.0, 0.25, 0.5, 0.75, 1.0]。

百分位數閾值會根據預測機率的分佈來分隔。 每個臨界值都會對應至機率臨界值的資料百分位數。 例如,如果NUM_POINTS為 5,則第一個臨界值會是第 0 個百分位數、第二個百分位數為第 25 個百分位數、第三個百分位數,依此類傳。

機率資料表和百分位數資料表都是 3D 清單,其中第 (一個維度代表類別標籤,第二個維度代表具有NUM_POINTS) 的臨界值,而第三個維度一律有 4 個值:TP、FP、TN、FN,且一律依該順序排列。

TP、FP、TN、FN) (混淆值是使用一個與其余策略來計算。 如需詳細資訊,請參閱下列連結: https://en.wikipedia.org/wiki/Multiclass_classification

範例) M = # thresholds = # samples in example (200 中的範例 (200 # samples,取自範例中 (5 的機率空間) C = # 類別 (3,例如)

精確度資料表的一些不變數:

  • TP + FP + TN + FN = N 代表所有類別的所有閾值
  • TP + FN 在任何類別的所有閾值都相同
  • TN + FP 在任何類別的所有閾值都相同
  • 機率資料表和百分位數資料表具有圖形 [C、M、4]

注意:M 可以是任何值,並控制圖表的解析度:這與資料集無關、在計算計量時定義,以及取捨儲存空間、計算時間和解析。

類別標籤應該是字串、混淆值應該是整數,而臨界值應該是浮點數。

log_accuracy_table(name, value, description='')

參數

name
str
必要

精確度資料表的名稱。

value
strdict
必要

包含名稱、版本和資料屬性的 JSON。

description
str
必要

選擇性計量描述。

備註

有效 JSON 值的範例:


   {
       "schema_type": "accuracy_table",
       "schema_version": "1.0.1",
       "data": {
           "probability_tables": [
               [
                   [82, 118, 0, 0],
                   [75, 31, 87, 7],
                   [66, 9, 109, 16],
                   [46, 2, 116, 36],
                   [0, 0, 118, 82]
               ],
               [
                   [60, 140, 0, 0],
                   [56, 20, 120, 4],
                   [47, 4, 136, 13],
                   [28, 0, 140, 32],
                   [0, 0, 140, 60]
               ],
               [
                   [58, 142, 0, 0],
                   [53, 29, 113, 5],
                   [40, 10, 132, 18],
                   [24, 1, 141, 34],
                   [0, 0, 142, 58]
               ]
           ],
           "percentile_tables": [
               [
                   [82, 118, 0, 0],
                   [82, 67, 51, 0],
                   [75, 26, 92, 7],
                   [48, 3, 115, 34],
                   [3, 0, 118, 79]
               ],
               [
                   [60, 140, 0, 0],
                   [60, 89, 51, 0],
                   [60, 41, 99, 0],
                   [46, 5, 135, 14],
                   [3, 0, 140, 57]
               ],
               [
                   [58, 142, 0, 0],
                   [56, 93, 49, 2],
                   [54, 47, 95, 4],
                   [41, 10, 132, 17],
                   [3, 0, 142, 55]
               ]
           ],
           "probability_thresholds": [0.0, 0.25, 0.5, 0.75, 1.0],
           "percentile_thresholds": [0.0, 0.01, 0.24, 0.98, 1.0],
           "class_labels": ["0", "1", "2"]
       }
   }

log_confusion_matrix

將混淆矩陣記錄至成品存放區。

這會記錄 sklearn 混淆矩陣周圍的包裝函式。 計量資料包含矩陣本身的類別標籤和 2D 清單。 如需如何計算計量的詳細資訊,請參閱下列連結: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

log_confusion_matrix(name, value, description='')

參數

name
str
必要

混淆矩陣的名稱。

value
strdict
必要

包含名稱、版本和資料屬性的 JSON。

description
str
必要

選擇性計量描述。

備註

有效 JSON 值的範例:


   {
       "schema_type": "confusion_matrix",
       "schema_version": "1.0.0",
       "data": {
           "class_labels": ["0", "1", "2", "3"],
           "matrix": [
               [3, 0, 1, 0],
               [0, 1, 0, 1],
               [0, 0, 1, 0],
               [0, 0, 0, 1]
           ]
       }
   }

log_image

記錄映像計量以執行記錄。

log_image(name, path=None, plot=None, description='')

參數

name
str
必要

計量的名稱。

path
str
必要

影像的路徑或資料流程。

plot
<xref:matplotlib.pyplot>
必要

要記錄為影像的繪圖。

description
str
必要

選擇性計量描述。

備註

使用此方法可將影像檔或 matplotlib 繪圖 記錄至執行。 這些映像會顯示在執行記錄中,並可供比較。

log_list

使用指定名稱將計量值清單記錄至執行。

log_list(name, value, description='')

參數

name
str
必要

計量的名稱。

value
list
必要

計量的值。

description
str
必要

選擇性計量描述。

log_predictions

將預測記錄至成品存放區。

這會記錄計量分數,可用來比較真實目標值的分佈與回歸工作的預測值分佈。

預測會量化,而標準差會針對折線圖上的誤差線計算。

log_predictions(name, value, description='')

參數

name
str
必要

預測的名稱。

value
strdict
必要

包含名稱、版本和資料屬性的 JSON。

description
str
必要

選擇性計量描述。

備註

有效 JSON 值的範例:


   {
       "schema_type": "predictions",
       "schema_version": "1.0.0",
       "data": {
           "bin_averages": [0.25, 0.75],
           "bin_errors": [0.013, 0.042],
           "bin_counts": [56, 34],
           "bin_edges": [0.0, 0.5, 1.0]
       }
   }

log_residuals

將剩餘記錄到成品存放區。

這會記錄顯示回歸工作殘差長條圖所需的資料。 預測殘差 - 實際。

應該有一個比計數數目更多的邊緣。 如需使用計數和邊緣來代表長條圖的範例,請參閱 numpy 長條圖檔。 https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

log_residuals(name, value, description='')

參數

name
str
必要

殘差的名稱。

value
strdict
必要

包含名稱、版本和資料屬性的 JSON。

description
str
必要

選擇性計量描述。

備註

有效 JSON 值的範例:


   {
       "schema_type": "residuals",
       "schema_version": "1.0.0",
       "data": {
           "bin_edges": [50, 100, 200, 300, 350],
           "bin_counts": [0.88, 20, 30, 50.99]
       }
   }

log_row

使用指定名稱將資料列計量記錄至執行。

log_row(name, description=None, **kwargs)

參數

name
str
必要

計量的名稱。

description
str
預設值: None

選擇性計量描述。

kwargs
dict
必要

其他參數的字典。 在此情況下,計量的資料行。

備註

使用 log_row 會建立具有資料行的資料表計量,如 kwargs 中所述。 每個具名的參數都會產生一個具有指定值的資料行。 log_row 可以呼叫一次以記錄任意 Tuple,或在迴圈中多次產生完整資料表。


   citrus = ['orange', 'lemon', 'lime']
   sizes = [ 10, 7, 3]
   for index in range(len(citrus)):
       run.log_row("citrus", fruit = citrus[index], size=sizes[index])

log_table

使用指定名稱將資料表計量記錄到執行中。

log_table(name, value, description='')

參數

name
str
必要

計量的名稱。

value
dict
必要

計量的資料表值,這是字典,其中索引鍵是要張貼至服務的資料行。

description
str
必要

選擇性計量描述。

register_model

註冊模型以進行作業化。

register_model(model_name, model_path=None, tags=None, properties=None, model_framework=None, model_framework_version=None, description=None, datasets=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None, **kwargs)

參數

model_name
str
必要

模型的名稱。

model_path
str
預設值: None

模型的相對雲端路徑,例如「output/modelname」。 未指定 (None) 時, model_name 會當做路徑使用。

tags
dict[str, str]
預設值: None

要指派給模型的索引鍵值標籤字典。

properties
dict[str, str]
預設值: None

要指派給模型的索引鍵值屬性字典。 建立模型之後,就無法變更這些屬性,不過可以加入新的索引鍵值組。

model_framework
str
預設值: None

要註冊之模型的架構。 目前支援的架構:TensorFlow、ScikitLearn、Onnx、Custom、Multi

model_framework_version
str
預設值: None

已註冊模型的架構版本。

description
str
預設值: None

模型的選擇性描述。

datasets
list[(str, AbstractDataset)]
預設值: None

Tuple 的清單,其中第一個元素描述資料集模型關聯性,而第二個元素是資料集。

sample_input_dataset
AbstractDataset
預設值: None

選擇性。 已註冊模型的範例輸入資料集

sample_output_dataset
AbstractDataset
預設值: None

選擇性。 已註冊模型的範例輸出資料集

resource_configuration
ResourceConfiguration
預設值: None

選擇性。 執行已註冊模型的資源組態

kwargs
dict
必要

選用參數。

傳回

已註冊的模型。

傳回類型

備註


   model = best_run.register_model(model_name = 'best_model', model_path = 'outputs/model.pkl')

remove_tags

刪除此執行時可變動標記的清單。

remove_tags(tags)

參數

tags
list
必要

要移除的標籤清單。

傳回

儲存在 run 物件上的標記

restore_snapshot

將快照集還原為 ZIP 檔案。 傳回 ZIP 的路徑。

restore_snapshot(snapshot_id=None, path=None)

參數

snapshot_id
str
預設值: None

要還原的快照集識別碼。 如果未指定,則會使用最新的 。

path
str
預設值: None

儲存下載 ZIP 的路徑。

傳回

路徑。

傳回類型

str

set_tags

在執行時新增或修改一組標記。 未在字典中傳遞的標籤會保持不變。

您也可以新增簡單的字串標記。 當這些標籤以索引鍵的形式出現在標籤字典中時,它們的值為 None。 如需詳細資訊,請參閱 標記和尋找執行

set_tags(tags)

參數

tags
dict[str] 或 str
必要

儲存在 run 物件中的標記。

start

將執行標示為已啟動。

當執行已由另一個動作專案建立時,這通常用於進階案例。

start()

submit_child

提交實驗並傳回作用中的子回合。

submit_child(config, tags=None, **kwargs)

參數

config
object
必要

要提交的組態。

tags
dict
預設值: None

要新增至提交回合的標記,例如 {「tag」: 「value」}。

kwargs
dict
必要

提交函式中用於設定的其他參數。

傳回

run 物件。

傳回類型

Run

備註

Submit 是 Azure Machine Learning 平臺的非同步呼叫,以在本機或遠端硬體上執行試用版。 視設定而定,提交會自動準備執行環境、執行程式碼,並將原始程式碼和結果擷取到實驗的執行歷程記錄中。

若要提交實驗,您必須先建立描述實驗執行方式的組態物件。 組態取決於所需的試用版類型。

使用 從本機電腦 ScriptRunConfig 提交子實驗的範例如下:


   from azureml.core import ScriptRunConfig

   # run a trial from the train.py code in your current directory
   config = ScriptRunConfig(source_directory='.', script='train.py',
       run_config=RunConfiguration())
   run = parent_run.submit_child(config)

   # get the url to view the progress of the experiment and then wait
   # until the trial is complete
   print(run.get_portal_url())
   run.wait_for_completion()

如需如何設定執行的詳細資訊,請參閱 submit

tag

使用字串索引鍵和可選字串值標記執行。

tag(key, value=None)

參數

key
str
必要

標記索引鍵

value
str
預設值: None

標記的選擇性值

備註

執行上的標籤和屬性都是字串 - > 字串的字典。 它們之間的差異是可變動性:標籤可以設定、更新和刪除,而屬性只能新增。 這讓 [屬性] 更適合系統/工作流程相關行為觸發程式,而標籤通常是使用者面向且對實驗取用者有意義的。


   run = experiment.start_logging()
   run.tag('DeploymentCandidate')
   run.tag('modifiedBy', 'Master CI')
   run.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable

   run.add_properties({'BuildId': os.environ.get('VSTS_BUILD_ID')}) # Properties are not

   tags = run.get_tags()
   # tags = { 'DeploymentCandidate': None, 'modifiedBy': 'release pipeline' }

take_snapshot

儲存輸入檔或資料夾的快照集。

take_snapshot(file_or_folder_path)

參數

file_or_folder_path
str
必要

包含執行原始程式碼的檔案或資料夾。

傳回

傳回快照集識別碼。

傳回類型

str

備註

快照集是用來執行實驗執行的 原始程式碼 。 這些會與執行一起儲存,以便未來可以複寫執行試用版。

注意

呼叫 時 submit 會自動擷取快照集。 一般而言,只有在執行互動式 (筆記本) 時,才需要這個take_snapshot方法。

upload_file

將檔案上傳到執行記錄。

upload_file(name, path_or_stream, datastore_name=None)

參數

name
str
必要

要上傳的檔案名。

path_or_stream
str
必要

要上傳之檔案的相對本機路徑或資料流程。

datastore_name
str
必要

選擇性的 DataStore 名稱

傳回類型

備註


   run = experiment.start_logging()
   run.upload_file(name='important_file', path_or_stream="path/on/disk/file.txt")

注意

執行會自動擷取特定輸出目錄中的檔案,對於大多數執行類型,預設為「./outputs」。 只有在需要上傳其他檔案或未指定輸出目錄時,才使用 upload_file。

upload_files

將檔案上傳至執行記錄。

upload_files(names, paths, return_artifacts=False, timeout_seconds=None, datastore_name=None)

參數

names
list
必要

要上傳的檔案名。 如果設定,也必須設定路徑。

paths
list
必要

要上傳之檔案的相對本機路徑。 如果設定,則需要名稱。

return_artifacts
bool
必要

指出每個上傳的檔案都應該傳回成品物件。

timeout_seconds
int
必要

上傳檔案的逾時。

datastore_name
str
必要

選擇性的 DataStore 名稱

備註

upload_files 與個別檔案的效果 upload_file 相同,不過使用 upload_files 時會有效能和資源使用率優勢。


   import os

   run = experiment.start_logging()
   file_name_1 = 'important_file_1'
   file_name_2 = 'important_file_2'
   run.upload_files(names=[file_name_1, file_name_2],
                       paths=['path/on/disk/file_1.txt', 'other/path/on/disk/file_2.txt'])

   run.download_file(file_name_1, 'file_1.txt')

   os.mkdir("path")  # The path must exist
   run.download_file(file_name_2, 'path/file_2.txt')

注意

執行 會自動擷取指定輸出目錄中的檔案,預設為 「./outputs」 表示大部分的執行類型。 只有在需要上傳其他檔案或未指定輸出目錄時,才使用upload_files。

upload_folder

將指定的資料夾上傳至指定的前置詞名稱。

upload_folder(name, path, datastore_name=None)

參數

name
str
必要

要上傳之檔案的資料夾名稱。

folder
str
必要

要上傳之資料夾的相對本機路徑。

datastore_name
str
必要

選擇性 DataStore 名稱

備註


   run = experiment.start_logging()
   run.upload_folder(name='important_files', path='path/on/disk')

   run.download_file('important_files/existing_file.txt', 'local_file.txt')

注意

執行 會自動擷取指定輸出目錄中的檔案,預設為 「./outputs」 表示大部分的執行類型。 只有在需要上傳其他檔案或未指定輸出目錄時,才使用upload_folder。

wait_for_completion

等候此執行完成。 在等候之後傳回狀態物件。

wait_for_completion(show_output=False, wait_post_processing=False, raise_on_error=True)

參數

show_output
bool
預設值: False

指出是否要在 sys.stdout 上顯示執行輸出。

wait_post_processing
bool
預設值: False

指出是否要在執行完成之後等候後續處理完成。

raise_on_error
bool
預設值: True

指出執行處於失敗狀態時是否引發錯誤。

傳回

status 物件。

傳回類型

屬性

description

傳回執行描述。

執行的選擇性描述是使用者指定的字串,可用於描述執行。

傳回

執行描述。

傳回類型

str

display_name

傳回執行顯示名稱。

執行的選擇性顯示名稱是使用者指定的字串,可用於稍後識別執行。

傳回

執行顯示名稱。

傳回類型

str

experiment

取得包含回合的實驗。

傳回

擷取對應至執行的實驗。

傳回類型

id

取得執行識別碼。

執行的識別碼是包含實驗的唯一識別碼。

傳回

執行識別碼。

傳回類型

str

name

已淘汰。 使用 display_name。

執行的選擇性名稱是使用者指定的字串,可用於稍後識別執行。

傳回

執行識別碼。

傳回類型

str

number

取得執行編號。

單調遞增的數位,代表實驗內的執行順序。

傳回

執行編號。

傳回類型

int

parent

從服務擷取此執行的父執行。

執行可以有選擇性的父代,導致執行的潛在樹狀結構階層。 若要將計量記錄至父回合,請使用 log 父物件的 方法,例如 run.parent.log()

傳回

如果未設定父執行,則為 None。

傳回類型

Run

properties

傳回這個回合的不可變屬性。

傳回

執行的本機快取屬性。

傳回類型

dict[str],
str

備註

屬性包括不可變的系統產生資訊,例如持續時間、執行日期、使用者等。

status

傳回執行物件的狀態。

tags

傳回此執行時可變動標記的集合。

傳回

儲存在 run 物件上的標記。

傳回類型

type

取得執行類型。

指出如何建立或設定執行。

傳回

執行類型。

傳回類型

str