Run 類別

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

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

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

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

初始化 Run 物件。

繼承
azureml._run_impl.run_base._RunBase
Run

建構函式

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

參數

名稱 Description
experiment
必要

包含實驗的 。

run_id
必要
str

執行的識別碼。

outputs
str

要追蹤的輸出。

預設值: None
_run_dto
必要
<xref:azureml._restclient.models.run_dto.RunDto>

僅供內部使用。

kwargs
必要

其他組態參數的字典。

experiment
必要

包含實驗的 。

run_id
必要
str

執行的識別碼。

outputs
必要
str

要追蹤的輸出。

kwargs
必要

其他組態參數的字典。

備註

執行代表實驗的單一試用版。 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

將執行標示為失敗。

選擇性地使用傳遞至 error_details 的訊息或例外狀況,設定執行的 Error 屬性。

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

擷取執行的最新狀態。

傳回的常見值包括 「Running」、「Completed」 和 「Failed」。

get_submitted_run

已淘汰。 請使用 get_context

取得針對此實驗提交的執行。

get_tags

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

list

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

list_by_compute

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

log

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

log_accuracy_table

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

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

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

有兩種方法可用來選取臨界值:「機率」和「百分位數」。它們與預測機率的空間取樣的方式不同。

機率臨界值是介於 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 中的驗證資料集 (200 的 N = # 樣本,範例) C = # 類別中的機率空間 (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)

參數

名稱 Description
properties
必要

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

add_type_provider

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

static add_type_provider(runtype, run_factory)

參數

名稱 Description
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)

參數

名稱 Description
name
str

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

預設值: None
run_id
str

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

預設值: None
outputs
str

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

預設值: None

傳回

類型 Description
Run

子執行。

備註

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

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

clean

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

clean()

傳回

類型 Description

已刪除的檔案清單。

complete

等候工作佇列進行處理。

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

complete(_set_status=True)

參數

名稱 Description
_set_status

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

預設值: True

create_children

建立一或多個子執行。

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

參數

名稱 Description
count
int

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

預設值: None
tag_key
str

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

預設值: None
tag_Values
必要

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

tag_values
預設值: None

傳回

類型 Description

子執行的清單。

備註

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

download_file

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

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

參數

名稱 Description
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)

參數

名稱 Description
prefix
必要
str

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

output_directory
必要
str

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

output_paths
必要
[str]

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

batch_size
必要
int

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

append_prefix
必要

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

timeout_seconds
必要
int

下載檔案的逾時。

fail

將執行標示為失敗。

選擇性地使用傳遞至 error_details 的訊息或例外狀況,設定執行的 Error 屬性。

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

參數

名稱 Description
error_details

錯誤的選擇性詳細資料。

預設值: None
error_code
str

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

預設值: None
_set_status

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

預設值: True

flush

等候工作佇列進行處理。

flush(timeout_seconds=300)

參數

名稱 Description
timeout_seconds
int

等候 (秒的時間,) 才能處理工作佇列。

預設值: 300

get

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

static get(workspace, run_id)

參數

名稱 Description
workspace
必要

包含工作區。

run_id
必要

執行識別碼。

傳回

類型 Description
Run

提交的回合。

get_all_logs

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

get_all_logs(destination=None)

參數

名稱 Description
destination
str

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

預設值: None

傳回

類型 Description

已下載之記錄的名稱清單。

get_children

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

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

參數

名稱 Description
recursive

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

預設值: False
tags
strdict

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

預設值: None
properties
strdict

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

預設值: None
type
str

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

預設值: None
status
str

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

預設值: None
_rehydrate_runs

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

預設值: True

傳回

類型 Description

Run 物件的清單。

get_context

傳回目前的服務內容。

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

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

參數

名稱 Description
cls
必要

表示類別方法。

allow_offline

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

預設值: True
kwargs
必要

其他參數的字典。

used_for_context_manager
預設值: False

傳回

類型 Description
Run

提交的回合。

備註

此函式通常用於擷取腳本內已驗證的 Run 物件,以便透過 experiment.submit () 提交執行。 此執行物件是與 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()

傳回

類型 Description

最新狀態和詳細資料

備註

  • 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()

傳回

類型 Description

傳回執行的詳細資料

備註

傳回的字典包含下列索引鍵/值組:

  • 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()

傳回

類型 Description

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

get_environment

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

get_environment()

傳回

類型 Description

傳回環境物件。

get_file_names

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

get_file_names()

傳回

類型 Description

現有成品的路徑清單

get_metrics

擷取記錄至執行的計量。

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

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

參數

名稱 Description
name
str

計量的名稱。

預設值: None
recursive

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

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

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

預設值: False

傳回

類型 Description

包含使用者計量的字典。

備註


   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()

傳回

類型 Description

執行的屬性。

備註

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

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

get_secret

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

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

get_secret(name)

參數

名稱 Description
name
必要
str

要傳回秘密的秘密名稱。

傳回

類型 Description
str

秘密值。

get_secrets

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

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

get_secrets(secrets)

參數

名稱 Description
secrets
必要

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

傳回

類型 Description

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

get_snapshot_id

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

get_snapshot_id()

傳回

類型 Description
str

最新的快照集識別碼。

get_status

擷取執行的最新狀態。

傳回的常見值包括 「Running」、「Completed」 和 「Failed」。

get_status()

傳回

類型 Description
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)

傳回

類型 Description
Run

提交的執行。

get_tags

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

get_tags()

傳回

類型 Description

儲存在 run 物件上的標記。

list

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

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

參數

名稱 Description
experiment
必要

包含實驗的 。

type
str

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

預設值: None
tags
strdict

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

預設值: None
properties
strdict

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

預設值: None
status
str

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

預設值: None
include_children

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

預設值: False
_rehydrate_runs

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

預設值: True

傳回

類型 Description

執行清單。

備註

下列程式碼範例示範 方法的 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)

參數

名稱 Description
compute
必要

包含計算的 。

type
str

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

預設值: None
tags
strdict

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

預設值: None
properties
strdict

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

預設值: None
status
str

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

預設值: None

傳回

類型 Description
<xref:builtin.generator>

~_restclient.models.RunDto 的產生器

log

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

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

參數

名稱 Description
name
必要
str

計量的名稱。

value
必要

要張貼至服務的值。

description
必要
str

選擇性計量描述。

step
int

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

預設值: None

備註

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

log_accuracy_table

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

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

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

有兩種方法可用來選取臨界值:「機率」和「百分位數」。它們與預測機率的空間取樣的方式不同。

機率臨界值是介於 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 中的驗證資料集 (200 的 N = # 樣本,範例) C = # 類別中的機率空間 (5 在範例中為 C = # 類別 (3,範例)

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

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

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

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

log_accuracy_table(name, value, description='')

參數

名稱 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='')

參數

名稱 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='')

參數

名稱 Description
name
必要
str

計量的名稱。

path
必要
str

影像的路徑或資料流程。

plot
必要
<xref:matplotlib.pyplot>

要記錄為影像的繪圖。

description
必要
str

選擇性計量描述。

備註

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

log_list

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

log_list(name, value, description='')

參數

名稱 Description
name
必要
str

計量的名稱。

value
必要

計量的值。

description
必要
str

選擇性計量描述。

log_predictions

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

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

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

log_predictions(name, value, description='')

參數

名稱 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='')

參數

名稱 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)

參數

名稱 Description
name
必要
str

計量的名稱。

description
str

選擇性計量描述。

預設值: None
kwargs
必要

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

備註

使用 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='')

參數

名稱 Description
name
必要
str

計量的名稱。

value
必要

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

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)

參數

名稱 Description
model_name
必要
str

模型的名稱。

model_path
str

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

預設值: None
tags

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

預設值: None
properties

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

預設值: None
model_framework
str

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

預設值: None
model_framework_version
str

已註冊模型的架構版本。

預設值: None
description
str

模型的選擇性描述。

預設值: None
datasets

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

預設值: None
sample_input_dataset

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

預設值: None
sample_output_dataset

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

預設值: None
resource_configuration

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

預設值: None
kwargs
必要

選用參數。

傳回

類型 Description

已註冊的模型。

備註


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

remove_tags

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

remove_tags(tags)

參數

名稱 Description
tags
必要

要移除的標籤清單。

傳回

類型 Description

儲存在 run 物件上的標記

restore_snapshot

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

restore_snapshot(snapshot_id=None, path=None)

參數

名稱 Description
snapshot_id
str

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

預設值: None
path
str

儲存下載 ZIP 的路徑。

預設值: None

傳回

類型 Description
str

路徑。

set_tags

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

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

set_tags(tags)

參數

名稱 Description
tags
必要
dict[str] 或 str

儲存在 run 物件中的標記。

start

將執行標示為已啟動。

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

start()

submit_child

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

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

參數

名稱 Description
config
必要

要提交的組態。

tags

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

預設值: None
kwargs
必要

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

傳回

類型 Description
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)

參數

名稱 Description
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)

參數

名稱 Description
file_or_folder_path
必要
str

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

傳回

類型 Description
str

傳回快照集識別碼。

備註

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

注意

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

upload_file

將檔案上傳到執行記錄。

upload_file(name, path_or_stream, datastore_name=None)

參數

名稱 Description
name
必要
str

要上傳的檔案名。

path_or_stream
必要
str

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

datastore_name
必要
str

選擇性的 DataStore 名稱

傳回

類型 Description

備註


   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)

參數

名稱 Description
names
必要

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

paths
必要

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

return_artifacts
必要

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

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')

注意

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

upload_folder

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

upload_folder(name, path, datastore_name=None)

參數

名稱 Description
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')

注意

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

wait_for_completion

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

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

參數

名稱 Description
show_output

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

預設值: False
wait_post_processing

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

預設值: False
raise_on_error

指出當 Run 處於失敗狀態時,是否引發錯誤。

預設值: True

傳回

類型 Description

狀態物件。

屬性

description

傳回執行描述。

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

傳回

類型 Description
str

執行描述。

display_name

傳回執行顯示名稱。

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

傳回

類型 Description
str

執行顯示名稱。

experiment

取得包含回合的實驗。

傳回

類型 Description

擷取對應至執行的實驗。

id

取得執行識別碼。

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

傳回

類型 Description
str

執行識別碼。

name

已淘汰。 使用 display_name。

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

傳回

類型 Description
str

執行識別碼。

number

取得執行編號。

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

傳回

類型 Description
int

執行編號。

parent

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

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

傳回

類型 Description
Run

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

properties

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

傳回

類型 Description
dict[str],
str

執行的本機快取屬性。

備註

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

status

傳回執行物件的狀態。

tags

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

傳回

類型 Description

儲存在 run 物件上的標記。

type

取得執行類型。

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

傳回

類型 Description
str

執行類型。