Experiment 類別
代表在 Azure Machine Learning 中建立和使用實驗的主要進入點。
實驗是代表多個模型執行 之試用版 的容器。
實驗建構函式。
建構函式
Experiment(workspace, name, _skip_name_validation=False, _id=None, _archived_time=None, _create_in_cloud=True, _experiment_dto=None, **kwargs)
參數
名稱 | Description |
---|---|
workspace
必要
|
包含實驗的工作區物件。 |
name
必要
|
實驗名稱。 |
kwargs
必要
|
關鍵詞自變數的字典。 |
workspace
必要
|
包含實驗的工作區物件。 |
name
必要
|
實驗名稱。 |
kwargs
必要
|
關鍵詞自變數的字典。 |
_skip_name_validation
|
預設值: False
|
_id
|
預設值: None
|
_archived_time
|
預設值: None
|
_create_in_cloud
|
預設值: True
|
_experiment_dto
|
預設值: None
|
備註
Azure Machine Learning 實驗代表用來驗證使用者假設的試驗集合。
在 Azure Machine Learning 中,實驗會以 Experiment 類別表示,而試用版則以 Run 類別表示。
若要從工作區取得或建立實驗,您可以使用實驗名稱要求實驗。 實驗名稱必須是 3-36 個字元,開頭為字母或數位,且只能包含字母、數位、底線和虛線。
experiment = Experiment(workspace, "MyExperiment")
如果在工作區中找不到實驗,則會建立新的實驗。
有兩種方式可執行實驗試驗。 如果您在 Jupyter Notebook 中以互動方式進行實驗,請使用 start_logging 如果您從原始程式碼或某些其他類型的設定試用版提交實驗,請使用 submit
這兩種機制都會建立 Run 物件。 在互動式案例中,使用記錄方法,例如 log 將度量和計量新增至試用記錄。 在已設定的案例中使用狀態方法,例如 get_status 擷取執行的相關信息。
在這兩種情況下,您可以使用查詢 get_metrics 方法來擷取目前值,如果有的話,任何試用度量和計量。
方法
archive |
封存實驗。 |
delete |
刪除工作區中的實驗。 |
from_directory |
(已淘汰)從指定的路徑載入實驗。 |
get_docs_url |
此類別的檔URL。 |
get_runs |
以反向時間順序傳回此實驗的執行產生器。 |
list |
傳回工作區中的實驗清單。 |
reactivate |
重新啟用封存實驗。 |
refresh |
從雲端傳回最新版的實驗。 |
remove_tags |
從實驗中刪除指定的標記。 |
set_tags |
在實驗上新增或修改一組標記。 字典中未傳遞的標記會保持不變。 |
start_logging |
啟動互動式記錄會話,並在指定的實驗中建立互動式執行。 |
submit |
提交實驗並傳回作用中建立的執行。 |
tag |
使用字串索引鍵和選擇性字串值標記實驗。 |
archive
封存實驗。
archive()
備註
封存之後,預設不會列出實驗。 嘗試寫入封存實驗將會建立具有相同名稱的新使用中實驗。 只要沒有另一個具有相同名稱的作用中實驗,就可以還原 reactivate 封存實驗。
delete
刪除工作區中的實驗。
static delete(workspace, experiment_id)
參數
名稱 | Description |
---|---|
workspace
必要
|
實驗所屬的工作區。 |
experiment_id
必要
|
要刪除之實驗的實驗標識碼。 |
from_directory
(已淘汰)從指定的路徑載入實驗。
static from_directory(path, auth=None)
參數
名稱 | Description |
---|---|
path
必要
|
包含實驗組態檔的目錄。 |
auth
|
驗證物件。 如果未使用預設 Azure CLI 認證,或 API 會提示輸入認證。 預設值: None
|
傳回
類型 | Description |
---|---|
傳回實驗 |
get_docs_url
get_runs
以反向時間順序傳回此實驗的執行產生器。
get_runs(type=None, tags=None, properties=None, include_children=False)
參數
名稱 | Description |
---|---|
type
|
依提供的型別篩選所傳回的執行產生器。 如需建立執行類型,請參閱 add_type_provider 。 預設值: None
|
tags
|
篩選會依 “tag” 或 {“tag”: “value”} 執行。 預設值: None
|
properties
|
篩選會依 “property” 或 {“property”: “value”} 執行 預設值: None
|
include_children
|
根據預設,只會擷取最上層執行。 設定為 true 以列出所有執行。 預設值: False
|
傳回
類型 | Description |
---|---|
符合所提供篩選條件的執行清單。 |
list
傳回工作區中的實驗清單。
static list(workspace, experiment_name=None, view_type='ActiveOnly', tags=None)
參數
名稱 | Description |
---|---|
workspace
必要
|
要從中列出實驗的工作區。 |
experiment_name
|
篩選實驗的選擇性名稱。 預設值: None
|
view_type
|
要篩選或包含封存實驗的選擇性列舉值。 預設值: ActiveOnly
|
tags
|
標記索引鍵或標記索引鍵/值組的選擇性標記索引鍵或字典,以篩選實驗。 預設值: None
|
傳回
類型 | Description |
---|---|
實驗物件清單。 |
reactivate
重新啟用封存實驗。
reactivate(new_name=None)
參數
名稱 | Description |
---|---|
new_name
必要
|
不再支援 |
備註
只有在沒有另一個具有相同名稱的作用中實驗時,才能重新啟用已封存的實驗。
refresh
從雲端傳回最新版的實驗。
refresh()
remove_tags
set_tags
start_logging
啟動互動式記錄會話,並在指定的實驗中建立互動式執行。
start_logging(*args, **kwargs)
參數
名稱 | Description |
---|---|
experiment
必要
|
實驗。 |
outputs
必要
|
要追蹤的選擇性輸出目錄。若沒有輸出,請傳遞 False。 |
snapshot_directory
必要
|
要建立快照集的選擇性目錄。 將 設定為 [無] 不會擷取快照集。 |
args
必要
|
|
kwargs
必要
|
|
傳回
類型 | Description |
---|---|
傳回已啟動的執行。 |
備註
start_logging 建立互動式執行,以在 Jupyter Notebook 等案例中使用。 會話期間記錄的任何計量都會新增至實驗中的執行記錄。 如果指定輸出目錄,該目錄的內容會在執行完成時上傳為執行成品。
experiment = Experiment(workspace, "My Experiment")
run = experiment.start_logging(outputs=None, snapshot_directory=".", display_name="My Run")
...
run.log_metric("Accuracy", accuracy)
run.complete()
備註
run_id會自動為每個回合產生,而且在實驗中是唯一的。
submit
提交實驗並傳回作用中建立的執行。
submit(config, tags=None, **kwargs)
參數
名稱 | Description |
---|---|
config
必要
|
要提交的組態。 |
tags
|
要新增至提交執行的標記{“tag”: “value”}。 預設值: None
|
kwargs
必要
|
送出函式中用於組態的其他參數。 |
傳回
類型 | Description |
---|---|
執行。 |
備註
Submit 是 Azure Machine Learning 平臺的異步呼叫,以在本機或遠端硬體上執行試用版。 視設定而定,提交會自動準備您的執行環境、執行程序代碼,以及擷取原始程式碼和結果到實驗的執行歷程記錄中。
若要提交實驗,您必須先建立描述實驗執行方式的組態物件。 設定取決於所需的試用版類型。
如何從本機計算機提交實驗的范例如下:
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 = experiment.submit(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()
如需如何設定執行的詳細資訊,請參閱組態類型詳細數據。
azureml.train.automl.automlconfig.AutoMLConfig
azureml.pipeline.core.Pipeline
azureml.pipeline.core.PublishedPipeline
azureml.pipeline.core.PipelineEndpoint
備註
當您提交定型執行時,會建立包含定型腳本的目錄快照集,並傳送至計算目標。 其也會儲存為工作區中實驗的一部分。 如果您變更檔案並再次提交執行,則只會上傳變更的檔案。
若要防止檔案包含在快照中,請在目錄中建立 .gitignore 或 .amlignore 檔案,並將檔案新增至該檔案。 .amlignore 檔案使用與 .gitignore 檔案相同的語法和模式。 如果這兩個檔案都存在, .amlignore 檔案會優先使用。
如需詳細資訊,請參閱快照集。
tag
使用字串索引鍵和選擇性字串值標記實驗。
tag(key, value=None)
參數
名稱 | Description |
---|---|
key
必要
|
標記索引鍵 |
value
必要
|
標記的選擇性值 |
備註
實驗上的標記會以字串索引鍵和字串值儲存在字典中。 您可以設定、更新和刪除標記。 標籤是面向使用者,通常包含實驗取用者的意義資訊。
experiment.tag('')
experiment.tag('DeploymentCandidate')
experiment.tag('modifiedBy', 'Master CI')
experiment.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable