Experiment 類別

表示在 Azure Machine Learning 中建立和使用實驗的主要進入點。

實驗是代表多個模型執行的 試用版 容器。

實驗建構函式。

繼承
azureml._logging.chained_identity.ChainedIdentity
Experiment
azureml.core._portal.HasExperimentPortal
Experiment

建構函式

Experiment(workspace, name, _skip_name_validation=False, _id=None, _archived_time=None, _create_in_cloud=True, _experiment_dto=None, **kwargs)

參數

名稱 Description
workspace
必要

包含實驗的工作區物件。

name
必要
str

實驗名稱。

kwargs
必要

關鍵字引數的字典。

workspace
必要

包含實驗的工作區物件。

name
必要
str

實驗名稱。

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
必要
str

包含實驗設定檔的目錄。

auth

驗證物件。 如果未使用預設 Azure CLI 認證,或 API 會提示輸入認證。

預設值: None

傳回

類型 Description

傳回實驗

get_docs_url

此類別的檔 URL。

get_docs_url()

傳回

類型 Description
str

url

get_runs

以反向時間順序傳回此實驗的執行產生器。

get_runs(type=None, tags=None, properties=None, include_children=False)

參數

名稱 Description
type

依提供的型別篩選所傳回的執行產生器。 請參閱 add_type_provider 以建立執行類型。

預設值: None
tags
stringdict

篩選會依 「tag」 或 {「tag」: 「value」}執行。

預設值: None
properties
stringdict

篩選會依 「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
str

篩選實驗的選擇性名稱。

預設值: None
view_type

選擇性列舉值,可篩選或包含封存的實驗。

預設值: ActiveOnly
tags

要篩選實驗的標記索引鍵或標記索引鍵/值組的選擇性標記索引鍵或字典。

預設值: None

傳回

類型 Description

實驗物件的清單。

reactivate

重新啟用封存實驗。

reactivate(new_name=None)

參數

名稱 Description
new_name
必要
str

不再支援

備註

如果沒有另一個具有相同名稱的作用中實驗,則只能重新啟用封存實驗。

refresh

從雲端傳回最新版的實驗。

refresh()

remove_tags

從實驗中刪除指定的標記。

remove_tags(tags)

參數

名稱 Description
tags
必要
[str]

將移除的標記索引鍵

set_tags

在實驗上新增或修改一組標記。 未在字典中傳遞的標記會保持未變更。

set_tags(tags)

參數

名稱 Description
tags
必要

儲存在實驗物件中的標記

start_logging

啟動互動式記錄會話,並在指定的實驗中建立互動式執行。

start_logging(*args, **kwargs)

參數

名稱 Description
experiment
必要

實驗。

outputs
必要
str

選擇性輸出要追蹤的目錄。若沒有輸出,請傳遞 False。

snapshot_directory
必要
str

要擷取快照集的選擇性目錄。 將 設定為 [無] 不會擷取快照集。

args
必要
kwargs
必要

傳回

類型 Description
Run

傳回已啟動的執行。

備註

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
Run

執行。

備註

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

如需如何設定執行的詳細資訊,請參閱組態類型詳細資料。

  • ScriptRunConfig

  • 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
必要
str

標記索引鍵

value
必要
str

標記的選擇性值

備註

實驗上的標記會儲存在具有字串索引鍵和字串值的字典中。 標記可以設定、更新和刪除。 標記是使用者面向的,通常包含實驗取用者的意義資訊。


   experiment.tag('')
   experiment.tag('DeploymentCandidate')
   experiment.tag('modifiedBy', 'Master CI')
   experiment.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable

屬性

archived_time

傳回實驗的封存時間。 使用中實驗的值應該是 None。

傳回

類型 Description
str

實驗的封存時間。

id

傳回實驗的識別碼。

傳回

類型 Description
str

實驗的識別碼。

name

傳回實驗的名稱。

傳回

類型 Description
str

實驗的名稱。

tags

傳回實驗上的可變動標記集。

傳回

類型 Description

實驗上的標記。

workspace

傳回包含實驗的工作區。

傳回

類型 Description

傳回工作區物件。

workspace_object

(已被取代) 傳回包含實驗的工作區。

workspace使用 屬性。

傳回

類型 Description

工作區物件。