Experiment 類別
表示在 Azure Machine Learning 中建立和使用實驗的主要進入點。
實驗是代表多個模型執行的 試用版 容器。
實驗建構函式。
- 繼承
-
azureml._logging.chained_identity.ChainedIdentityExperimentazureml.core._portal.HasExperimentPortalExperiment
建構函式
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