共用方式為


Run 類別

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

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

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

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

初始化 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 的功能包括:

  • 儲存和擷取計量和數據

  • 上傳和下載檔案

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

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

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

  • 使用 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)

  • 清單

    • 使用 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

等候工作佇列處理。

然後,執行會標示為已完成。 這通常用於互動式筆記本案例。

create_children

建立一或多個子執行。

download_file

從記憶體下載相關聯的檔案。

download_files

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

fail

將執行標示為失敗。

選擇性地將執行的 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 Key Vault 中儲存的值。 如需使用秘密的範例,請參閱 在定型回合中使用秘密

get_secrets

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

取得找到且找不到名稱清單的字典。 每個秘密名稱都會參考與您工作區相關聯的 Azure Key Vault 中儲存的值。 如需使用秘密的範例,請參閱 在定型回合中使用秘密

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

驗證數據集中的樣本 N = #thresholds = #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

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

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>

具有簽章的函式 (Experiment, 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

等候工作佇列處理。

然後,執行會標示為已完成。 這通常用於互動式筆記本案例。

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 屬性設定為傳遞至 error_details的訊息或例外狀況。

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

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

預設值: 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。

預設值: 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() 傳回的值相同。

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


   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:啟動此回合的 UTC 時間,ISO8601。

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

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

  • 屬性:與執行相關聯的不可變索引鍵/值組。 默認屬性包括執行的快照集標識符,以及建立執行的來源 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 Key Vault 中儲存的值。 如需使用秘密的範例,請參閱 在定型回合中使用秘密

get_secret(name)

參數

名稱 Description
name
必要
str

要傳回秘密的秘密名稱。

傳回

類型 Description
str

秘密值。

get_secrets

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

取得找到且找不到名稱清單的字典。 每個秘密名稱都會參考與您工作區相關聯的 Azure Key Vault 中儲存的值。 如需使用秘密的範例,請參閱 在定型回合中使用秘密

get_secrets(secrets)

參數

名稱 Description
secrets
必要

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

傳回

類型 Description

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

get_snapshot_id

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

get_snapshot_id()

傳回

類型 Description
str

最新的快照集標識碼。

get_status

擷取執行的最新狀態。

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

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」 的執行。 只有允許的值是 「Running」 和 「Queued」。

預設值: None

傳回

類型 Description
<xref:builtin.generator>

~_restclient.models.RunDto 的產生器

log

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

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

參數

名稱 Description
name
必要
str

計量的名稱。

value
必要

要張貼至服務的值。

description
必要
str

選擇性的計量描述。

step
int

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

預設值: None

備註

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

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

驗證數據集中的樣本 N = #thresholds = #samples 取自機率空間 (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

模型的相對雲端路徑,例如“outputs/modelname”。 未指定時(無), 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

儲存在執行物件上的標記

restore_snapshot

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

restore_snapshot(snapshot_id=None, path=None)

參數

名稱 Description
snapshot_id
str

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

預設值: 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方法只需要互動式 (Notebook) 執行。

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

備註

執行會自動擷取指定輸出目錄中的檔案,而大部分的執行類型預設為 “./outputs”。 只有在需要上傳其他檔案或未指定輸出目錄時,才使用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')

備註

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

wait_for_completion

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

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

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

預設值: True

傳回

類型 Description

status 物件。

屬性

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

如果未設定父執行,則為 [無]。

properties

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

傳回

類型 Description
dict[str],
str

執行之本機快取的屬性。

備註

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

status

傳回執行物件的狀態。

tags

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

傳回

類型 Description

儲存在 run 物件上的標記。

type

取得執行類型。

指出執行建立或設定的方式。

傳回

類型 Description
str

執行類型。