Run 類別
定義所有 Azure Machine Learning 實驗執行的基類。
執行代表實驗的單一試用版。 執行可用來監視試用版的非同步執行、記錄計量和儲存試用版的輸出,以及分析試用版所產生的結果和存取成品。
當您提交腳本以在 Azure Machine Learning 的許多不同案例中定型模型時,會建立執行物件,包括 HyperDrive 執行、管線執行和 AutoML 執行。 當您或 start_logging 搭配 Experiment 類別時 submit ,也會建立 Run 物件。
若要開始使用實驗和執行,請參閱
初始化 Run 物件。
- 繼承
-
azureml._run_impl.run_base._RunBaseRun
建構函式
Run(experiment, run_id, outputs=None, **kwargs)
參數
- _run_dto
- <xref:azureml._restclient.models.run_dto.RunDto>
僅供內部使用。
備註
執行代表實驗的單一試用版。 Run 物件可用來監視試用版的非同步執行、記錄計量和儲存試用版的輸出,以及分析試用版所產生的結果和存取成品。
測試程式碼內會使用 Run Run 程式碼來執行,以將計量和成品記錄到執行歷程記錄服務。
執行會在實驗之外用來監視進度,以及查詢和分析產生的計量和結果。
執行的功能包括:
儲存和擷取計量和資料
上傳和下載檔案
使用標籤和子階層輕鬆查閱過去執行
將預存模型檔案註冊為可運作的模型
儲存、修改及擷取執行的屬性
使用 get_context 方法從遠端環境載入目前的回合
有效率地快照化檔案或目錄以進行重現
此類別適用于 Experiment 下列案例中的 :
使用 執行程式碼來建立執行 submit
使用 在筆記本中以互動方式建立執行 start_logging
記錄計量並在實驗中上傳成品,例如使用時 log
在分析實驗結果時讀取計量和下載成品,例如使用時 get_metrics
若要提交回合,請建立描述實驗執行方式的組態物件。 以下是您可以使用的不同組態物件的範例:
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 |
將執行標示為失敗。 選擇性地使用傳遞至 |
flush |
等候工作佇列進行處理。 |
get |
取得此工作區的執行,其執行識別碼為 。 |
get_all_logs |
下載執行的所有記錄至目錄。 |
get_children |
取得指定篩選所選取目前執行的所有子系。 |
get_context |
傳回目前的服務內容。 使用這個方法來擷取目前的服務內容來記錄計量和上傳檔案。 如果 為 |
get_detailed_status |
擷取執行的最新狀態。 如果執行狀態為「已排入佇列」,則會顯示詳細資料。 |
get_details |
取得定義、狀態資訊、目前的記錄檔,以及執行的其他詳細資料。 |
get_details_with_logs |
傳回執行狀態,包括記錄檔內容。 |
get_environment |
取得此執行所使用的環境定義。 |
get_file_names |
列出與執行相關聯的儲存檔案。 |
get_metrics |
擷取記錄至執行的計量。 如果 |
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,範例) 精確度資料表的一些不變數:
注意: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)
參數
add_type_provider
儲存在執行歷程記錄中的自訂執行類型擴充性勾點。
static add_type_provider(runtype, run_factory)
參數
- run_factory
- <xref:function>
具有簽章的函式 (實驗、RunDto) - > 列出執行時要叫用的執行。
cancel
將執行標示為已取消。
如果有與集合cancel_uri欄位相關聯的作業,也請終止該作業。
cancel()
child_run
建立子執行。
child_run(name=None, run_id=None, outputs=None)
參數
傳回
子執行。
傳回類型
備註
這可用來隔離子區段的一部分。 這可以針對有趣的執行「元件」進行識別,或擷取子進程交錯之間的獨立計量。
如果已為子執行設定輸出目錄,當子系完成時,該目錄的內容將會上傳至子執行記錄。
clean
complete
等候工作佇列進行處理。
然後執行會標示為已完成。 這通常用於互動式 Notebook 環境。
complete(_set_status=True)
參數
create_children
建立一或多個子執行。
create_children(count=None, tag_key=None, tag_values=None)
參數
- tag_Values
將對應至所建立執行清單之 Tags[tag_key] 的選擇性值清單。
- tag_values
傳回
子執行的清單。
傳回類型
備註
必須指定任一參數 count
OR 參數 tag_key
AND tag_values
。
download_file
從儲存體下載相關聯的檔案。
download_file(name, output_file_path=None, _validate_checksum=False)
參數
download_files
如果未指定前置詞,請從指定的儲存體前置詞下載檔案 (資料夾名稱) 或整個容器。
download_files(prefix=None, output_directory=None, output_paths=None, batch_size=100, append_prefix=True, timeout_seconds=None)
參數
fail
將執行標示為失敗。
選擇性地使用傳遞至 error_details
的訊息或例外狀況,設定執行的 Error 屬性。
fail(error_details=None, error_code=None, _set_status=True)
參數
flush
get
取得此工作區的執行,其執行識別碼為 。
static get(workspace, run_id)
參數
傳回
提交的回合。
傳回類型
get_all_logs
下載執行的所有記錄至目錄。
get_all_logs(destination=None)
參數
傳回
已下載之記錄的名稱清單。
傳回類型
get_children
取得指定篩選所選取目前執行的所有子系。
get_children(recursive=False, tags=None, properties=None, type=None, status=None, _rehydrate_runs=True)
參數
傳回
Run 物件的清單。
傳回類型
get_context
傳回目前的服務內容。
使用這個方法來擷取目前的服務內容來記錄計量和上傳檔案。 如果 為 allow_offline
True (預設) ,則針對 Run 物件的動作將會列印為標準輸出。
get_context(allow_offline=True, used_for_context_manager=False, **kwargs)
參數
- cls
表示類別方法。
- used_for_context_manager
傳回
提交的回合。
傳回類型
備註
此函式通常用於擷取腳本內已驗證的 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()
傳回
最新狀態和詳細資料
傳回類型
備註
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_environment
get_file_names
get_metrics
擷取記錄至執行的計量。
如果 recursive
為 True (False 預設) ,則擷取指定回合子樹中執行的計量。
get_metrics(name=None, recursive=False, run_type=None, populate=False)
參數
- run_type
- str
傳回
包含使用者計量的字典。
傳回類型
備註
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)
參數
傳回
秘密值。
傳回類型
get_secrets
取得指定秘密名稱清單的秘密值。
取得所提供名稱清單的找到和找不到秘密的字典。 每個秘密名稱都會參考與工作區相關聯的 Azure 金鑰保存庫中所儲存的值。 如需使用秘密的範例,請參閱 在定型回合中使用秘密。
get_secrets(secrets)
參數
傳回
傳回找到且找不到秘密的字典。
傳回類型
get_snapshot_id
get_status
擷取執行的最新狀態。
傳回的常見值包括 「Running」、「Completed」 和 「Failed」。
get_status()
傳回
最新狀態。
傳回類型
備註
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_tags
list
取得選擇性篩選所指定之實驗中的執行清單。
static list(experiment, type=None, tags=None, properties=None, status=None, include_children=False, _rehydrate_runs=True)
參數
傳回
執行清單。
傳回類型
備註
下列程式碼範例示範 方法的 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)
參數
傳回
~_restclient.models.RunDto 的產生器
傳回類型
log
使用指定名稱將計量值記錄到執行中。
log(name, value, description='', step=None)
參數
- value
要張貼至服務的值。
備註
將計量記錄到執行中,會導致該計量儲存在實驗的執行記錄中。 您可以在執行中多次記錄相同的計量,結果會視為該計量的向量。 如果為計量指定步驟,則必須針對所有值指定步驟。
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='')
參數
備註
有效 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='')
參數
備註
有效 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='')
參數
- plot
- <xref:matplotlib.pyplot>
要記錄為影像的繪圖。
備註
使用這個方法,將影像檔或 matplotlib 繪圖 記錄到執行。 這些映像會顯示在執行記錄中,並可供比較。
log_list
使用指定名稱將計量值清單記錄至執行。
log_list(name, value, description='')
參數
log_predictions
將預測記錄至成品存放區。
這會記錄計量分數,可用來比較真實目標值的分佈與回歸工作的預測值分佈。
預測會量化,而標準差會針對折線圖上的誤差線計算。
log_predictions(name, value, description='')
參數
備註
有效 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='')
參數
備註
有效 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)
參數
備註
使用 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='')
參數
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 = best_run.register_model(model_name = 'best_model', model_path = 'outputs/model.pkl')
remove_tags
restore_snapshot
將快照集還原為 ZIP 檔案。 傳回 ZIP 的路徑。
restore_snapshot(snapshot_id=None, path=None)
參數
傳回
路徑。
傳回類型
set_tags
在執行時新增或修改一組標記。 未在字典中傳遞的標籤會保持不變。
您也可以新增簡單的字串標記。 當這些標籤以索引鍵的形式出現在標籤字典中時,它們的值為 None。 如需詳細資訊,請參閱 標記和尋找執行。
set_tags(tags)
參數
start
將執行標示為已啟動。
當執行已由另一個動作專案建立時,這通常用於進階案例。
start()
submit_child
提交實驗並傳回作用中的子回合。
submit_child(config, tags=None, **kwargs)
參數
傳回
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)
參數
備註
執行上的標籤和屬性都是字串 - > 字串的字典。 它們之間的差異是可變動性:標籤可以設定、更新和刪除,而屬性只能新增。 這讓 [屬性] 更適合系統/工作流程相關行為觸發程式,而標籤通常是使用者面向且對實驗取用者有意義的。
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)
參數
傳回
傳回快照集識別碼。
傳回類型
備註
快照集是用來執行實驗執行的 原始程式碼 。 這些會與執行一起儲存,以便未來可以複寫執行試用版。
注意
呼叫 時 submit 會自動擷取快照集。 一般而言,只有在執行互動式 (筆記本) 時,才需要這個take_snapshot方法。
upload_file
將檔案上傳到執行記錄。
upload_file(name, path_or_stream, datastore_name=None)
參數
傳回類型
備註
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)
參數
備註
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)
參數
備註
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
display_name
experiment
id
name
number
parent
從服務擷取此執行的父執行。
執行可以有選擇性的父代,導致執行的潛在樹狀結構階層。 若要將計量記錄至父回合,請使用 log 父物件的 方法,例如 run.parent.log()
。
傳回
如果未設定父執行,則為 None。
傳回類型
properties
status
傳回執行物件的狀態。
tags
type
意見反應
提交並檢視相關的意見反應