共用方式為


Model 類別

表示機器學習訓練的結果。

模型是 Azure Machine Learning 定Run型或 Azure 外部的一些其他模型定型程序的結果。 不論模型如何產生,都可以在工作區中註冊,其中的名稱和版本代表該模型。 使用 Model 類別,您可以封裝模型以搭配 Docker 使用,並將其部署為可用於推斷要求的即時端點。

如需示範模型建立、管理和取用方式的端對端教學課程,請參閱 使用 AZURE Machine Learning 使用 MNIST 數據和 scikit-learn 來定型影像分類模型

模型建構函式。

模型建構函式是用來擷取與所提供工作區相關聯之 Model 物件的雲端表示法。 必須提供名稱或識別碼。

建構函式

Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)

參數

名稱 Description
workspace
必要

包含要擷取之模型的工作區物件。

name
str

要擷取的模型名稱。 如果存在,則會傳回具有指定名稱的最新模型。

預設值: None
id
str

要擷取之模型的標識碼。 如果模型存在,則會傳回具有指定標識符的模型。

預設值: None
tags

用來篩選傳回結果的選擇性標記清單。 結果會根據提供的清單進行篩選,並依 'key' 或 '[key, value]' 進行搜尋。 例如 ['key', ['key2', 'key2 value']]

預設值: None
properties

用來篩選傳回結果的屬性選擇性清單。 結果會根據提供的清單進行篩選,並依 'key' 或 '[key, value]' 進行搜尋。 例如 ['key', ['key2', 'key2 value']]

預設值: None
version
int

要傳回的模型版本。 與 參數一 name 起提供時,如果指定的具名模型存在,則會傳回特定版本的具名模型。 如果 version 省略 ,則會傳回模型的最後一個版本。

預設值: None
run_id
str

用來篩選傳回結果的選擇性標識碼。

預設值: None
model_framework
str

用來篩選傳回結果的選擇性架構名稱。 如果指定,則會針對符合指定架構的模型傳回結果。 如需允許的值,請參閱 Framework

預設值: None
workspace
必要

包含要擷取之模型的工作區物件。

name
必要
str

要擷取的模型名稱。 如果存在,則會傳回具有指定名稱的最新模型。

id
必要
str

要擷取之模型的標識碼。 如果模型存在,則會傳回具有指定標識符的模型。

tags
必要

用來篩選傳回結果的選擇性標記清單。 結果會根據提供的清單進行篩選,並依 'key' 或 '[key, value]' 進行搜尋。 例如 ['key', ['key2', 'key2 value']]

properties
必要

用來篩選傳回結果的屬性選擇性清單。 結果會根據提供的清單進行篩選,並依 'key' 或 '[key, value]' 進行搜尋。 例如 ['key', ['key2', 'key2 value']]

version
必要
int

要傳回的模型版本。 與 參數一 name 起提供時,如果指定的具名模型存在,則會傳回特定版本的具名模型。 如果 version 省略 ,則會傳回模型的最後一個版本。

run_id
必要
str

用來篩選傳回結果的選擇性標識碼。

model_framework
必要
str

用來篩選傳回結果的選擇性架構名稱。 如果指定,則會針對符合指定架構的模型傳回結果。 如需允許的值,請參閱 Framework

expand

如果為 true,則會傳回已填入所有子屬性的模型,例如執行、數據集和實驗。

預設值: True

備註

模型建構函式是用來擷取與指定工作區相關聯之 Model 對象的雲端表示法。 至少必須提供名稱或標識符來擷取模型,但也有其他選項可用來篩選,包括依標籤、屬性、版本、執行標識碼和架構。


   from azureml.core.model import Model
   model = Model(ws, 'my_model_name')

下列範例示範如何擷取特定版本的模型。


   from azureml.core.model import Model
   model = Model(ws, 'my_model_name', version=1)

註冊模型會為組成模型的一或多個檔案建立邏輯容器。 除了模型檔案本身的內容之外,已註冊的模型也會儲存模型元數據,包括模型描述、標記和架構資訊,在工作區中管理和部署模型時很有用。 例如,使用標籤,您可以在工作區中列出模型時分類模型並套用篩選。 註冊之後,您可以下載或部署已註冊的模型,並接收已註冊的所有檔案和元數據。

下列範例示範如何註冊指定標籤和描述的模型。


   from azureml.core.model import Model

   model = Model.register(model_path="sklearn_regression_model.pkl",
                          model_name="sklearn_regression_model",
                          tags={'area': "diabetes", 'type': "regression"},
                          description="Ridge regression model to predict diabetes",
                          workspace=ws)

下列範例示範如何註冊模型,以指定架構、輸入和輸出數據集,以及資源組態。


   import sklearn

   from azureml.core import Model
   from azureml.core.resource_configuration import ResourceConfiguration


   model = Model.register(workspace=ws,
                          model_name='my-sklearn-model',                # Name of the registered model in your workspace.
                          model_path='./sklearn_regression_model.pkl',  # Local file to upload and register as a model.
                          model_framework=Model.Framework.SCIKITLEARN,  # Framework used to create the model.
                          model_framework_version=sklearn.__version__,  # Version of scikit-learn used to create the model.
                          sample_input_dataset=input_dataset,
                          sample_output_dataset=output_dataset,
                          resource_configuration=ResourceConfiguration(cpu=1, memory_in_gb=0.5),
                          description='Ridge regression model to predict diabetes progression.',
                          tags={'area': 'diabetes', 'type': 'regression'})

   print('Name:', model.name)
   print('Version:', model.version)

Variables 區段會列出雲端 Model 物件的本機表示屬性。 這些變數應該視為唯讀。 變更其值不會反映在對應的雲端物件中。

變數

名稱 Description
created_by

建立模型的使用者。

created_time

建立模型時。

azureml.core.Model.description

Model 物件的描述。

azureml.core.Model.id

模型標識碼。 這會採用模型名稱<:>model 版本<的形式>。

mime_type
str

模型mime類型。

azureml.core.Model.name

Model 的名稱。

model_framework
str

模型的架構。

model_framework_version
str

模型的架構版本。

azureml.core.Model.tags

Model 對象的標記字典。

azureml.core.Model.properties

模型的索引鍵值屬性字典。 註冊之後就無法變更這些屬性,但是可以新增新的索引鍵值組。

unpack

當提取至本機內容時,是否需要將模型解壓縮(未壓縮)。

url
str

模型的 URL 位置。

azureml.core.Model.version

模型的版本。

azureml.core.Model.workspace

包含模型的工作區。

azureml.core.Model.experiment_name

建立模型的實驗名稱。

azureml.core.Model.run_id

建立模型的執行標識碼。

parent_id
str

模型的父模型標識碼。

derived_model_ids

已衍生自此模型之模型標識碼的清單。

resource_configuration

此模型的 ResourceConfiguration。 用於分析。

方法

add_dataset_references

將提供的數據集與此模型產生關聯。

add_properties

將索引鍵值組新增至此模型的屬性字典。

add_tags

將索引鍵值組新增至此模型的標記字典。

delete

從其相關聯的工作區中刪除此模型。

deploy

從零個或多個 Model 物件部署 Webservice。

產生的 Webservice 是可用於推斷要求的即時端點。 Model 函 deploy 式類似於 deploy 類別的 Webservice 函式,但不會註冊模型。 如果您有已註冊的模型物件,請使用 Model deploy 函式。

deserialize

將 JSON 物件轉換成模型物件。

如果指定的工作區不是模型註冊的工作區,則轉換會失敗。

download

將模型下載到本機檔系統的目標目錄。

get_model_path

傳回模型的路徑。

函式會在下列位置搜尋模型。

如果 version 為 None:

  1. 從遠端下載到快取 (如果提供工作區)
  2. 從快取 azureml-models/$MODEL_NAME/$LATEST_VERSION/ 載入
  3. ./$MODEL_NAME

如果 version 不是 None:

  1. 從快取 azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/ 載入
  2. 從遠端下載到快取 (如果提供工作區)
get_sas_urls

傳回索引鍵/值組的字典,其中包含檔名和對應的SAS URL。

list

使用選擇性篩選,擷取與所提供工作區相關聯的所有模型清單。

package

以 Docker 映像或 Dockerfile 組建內容的形式建立模型套件。

print_configuration

列印用戶設定。

profile

配置檔模型以取得資源需求建議。

這是一項長時間執行的作業,視數據集大小而定,最多可能需要 25 分鐘的時間。

register

向提供的工作區註冊模型。

remove_tags

從此模型的標記字典中移除指定的索引鍵。

serialize

將此模型轉換成 json 串行化字典。

update

執行模型的就地更新。

已取代指定參數的現有值。

update_tags_properties

執行模型的標記和屬性更新。

add_dataset_references

將提供的數據集與此模型產生關聯。

add_dataset_references(datasets)

參數

名稱 Description
datasets
必要
list[tuple(<xref:str :> (DatasetDatasetSnapshot))]

Tuple 清單,代表數據集對象的數據集用途配對。

例外狀況

類型 Description

add_properties

將索引鍵值組新增至此模型的屬性字典。

add_properties(properties)

參數

名稱 Description
properties
必要
dict(<xref:str : str>)

要加入之屬性的字典。

add_tags

將索引鍵值組新增至此模型的標記字典。

add_tags(tags)

參數

名稱 Description
tags
必要
dict(<xref:{str : str}>)

要加入的標籤典。

例外狀況

類型 Description

delete

從其相關聯的工作區中刪除此模型。

delete()

例外狀況

類型 Description

deploy

從零個或多個 Model 物件部署 Webservice。

產生的 Webservice 是可用於推斷要求的即時端點。 Model 函 deploy 式類似於 deploy 類別的 Webservice 函式,但不會註冊模型。 如果您有已註冊的模型物件,請使用 Model deploy 函式。

static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)

參數

名稱 Description
workspace
必要

要與 Webservice 建立關聯的 Workspace 物件。

name
必要
str

要提供已部署服務的名稱。 工作區必須是唯一的,只有小寫字母、數位或虛線,開頭為字母,且長度介於 3 到 32 個字元之間。

models
必要

模型對象的清單。 可以是空白清單。

inference_config

用來判斷必要模型屬性的 InferenceConfig 物件。

預設值: None
deployment_config

用來設定 Web 服務的 WebserviceDeploymentConfiguration。 如果未提供空白組態物件,則會根據所需的目標使用空的組態物件。

預設值: None
deployment_target

ComputeTarget要部署 Webservice 的 。 由於 Azure 容器實例沒有相關聯的 ComputeTarget,請將此參數保留為 None,以部署至 Azure 容器實例。

預設值: None
overwrite

指出如果具有指定名稱的服務已經存在,是否要覆寫現有的服務。

預設值: False
show_output

指出是否要顯示服務部署的進度。

預設值: False

傳回

類型 Description

對應至已部署 Webservice 的 Webservice 物件。

例外狀況

類型 Description

deserialize

將 JSON 物件轉換成模型物件。

如果指定的工作區不是模型註冊的工作區,則轉換會失敗。

static deserialize(workspace, model_payload)

參數

名稱 Description
workspace
必要

模型註冊的工作區物件。

model_payload
必要

要轉換成 Model 物件的 JSON 物件。

傳回

類型 Description

所提供 JSON 物件的模型表示法。

download

將模型下載到本機檔系統的目標目錄。

download(target_dir='.', exist_ok=False, exists_ok=None)

參數

名稱 Description
target_dir
str

要在其中下載模型的目錄路徑。 默認為 “.”

預設值: .
exist_ok

指出是否要取代已下載的 dir/files。 預設為 False。

預設值: False
exists_ok

荒廢的。 請使用 exist_ok

預設值: None

傳回

類型 Description
str

模型檔案或資料夾的路徑。

get_model_path

傳回模型的路徑。

函式會在下列位置搜尋模型。

如果 version 為 None:

  1. 從遠端下載到快取 (如果提供工作區)
  2. 從快取 azureml-models/$MODEL_NAME/$LATEST_VERSION/ 載入
  3. ./$MODEL_NAME

如果 version 不是 None:

  1. 從快取 azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/ 載入
  2. 從遠端下載到快取 (如果提供工作區)
static get_model_path(model_name, version=None, _workspace=None)

參數

名稱 Description
model_name
必要
str

要擷取的模型名稱。

version
int

要擷取的模型版本。 預設為最新版本。

預設值: None
_workspace

要從中擷取模型的工作區。 無法從遠端使用。 如果未指定,則只會搜尋本機快取。

預設值: None

傳回

類型 Description
str

磁碟上模型的路徑。

例外狀況

類型 Description

get_sas_urls

傳回索引鍵/值組的字典,其中包含檔名和對應的SAS URL。

get_sas_urls()

傳回

類型 Description

索引鍵/值組的字典,其中包含檔名和對應的SAS URL

list

使用選擇性篩選,擷取與所提供工作區相關聯的所有模型清單。

static list(workspace, name=None, tags=None, properties=None, run_id=None, latest=False, dataset_id=None, expand=True, page_count=255, model_framework=None)

參數

名稱 Description
workspace
必要

要從中擷取模型的工作區物件。

name
str

如果提供,則只會傳回具有指定名稱的模型,如果有的話。

預設值: None
tags

會根據提供的清單,依 'key' 或 '[key, value]' 進行篩選。 例如 ['key', ['key2', 'key2 value']]

預設值: None
properties

會根據提供的清單,依 'key' 或 '[key, value]' 進行篩選。 例如 ['key', ['key2', 'key2 value']]

預設值: None
run_id
str

會根據提供的回合標識碼進行篩選。

預設值: None
latest

如果為 true,則只會傳回具有最新版本的模型。

預設值: False
dataset_id
str

會根據提供的數據集標識碼進行篩選。

預設值: None
expand

如果為 true,則會傳回已填入所有子屬性的模型,例如執行、數據集和實驗。 將此值設定為 false 時,應該會加速 list() 方法完成,以防許多模型。

預設值: True
page_count
int

在頁面中擷取的項目數。 目前支援最多 255 的值。 預設值為 255。

預設值: 255
model_framework
str

如果提供,則只會傳回具有指定架構的模型,如果有的話。

預設值: None

傳回

類型 Description

選擇性篩選的模型清單。

例外狀況

類型 Description

package

以 Docker 映像或 Dockerfile 組建內容的形式建立模型套件。

static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)

參數

名稱 Description
workspace
必要

要在其中建立封裝的工作區。

models
必要

要包含在封裝中的 Model 物件清單。 可以是空白清單。

inference_config

用來設定模型作業的 InferenceConfig 物件。 這必須包含 Environment 物件。

預設值: None
generate_dockerfile

是否要建立可在本機執行的 Dockerfile,而不是建置映射。

預設值: False
image_name
str

建置映射時,產生的映像名稱。

預設值: None
image_label
str

建置映射時,產生的影像卷標。

預設值: None

傳回

類型 Description

ModelPackage 物件。

print_configuration

列印用戶設定。

static print_configuration(models, inference_config, deployment_config, deployment_target)

參數

名稱 Description
models
必要

模型對象的清單。 可以是空白清單。

inference_config
必要

用來判斷必要模型屬性的 InferenceConfig 物件。

deployment_config
必要

用來設定 Web 服務的 WebserviceDeploymentConfiguration。

deployment_target
必要

ComputeTarget要部署 Webservice 的 。

profile

配置檔模型以取得資源需求建議。

這是一項長時間執行的作業,視數據集大小而定,最多可能需要 25 分鐘的時間。

static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)

參數

名稱 Description
workspace
必要

要在其中分析模型的 Workspace 物件。

profile_name
必要
str

程式代碼剖析執行的名稱。

models
必要

模型對象的清單。 可以是空白清單。

inference_config
必要

用來判斷必要模型屬性的 InferenceConfig 物件。

input_dataset
必要

分析的輸入數據集。 輸入數據集應具有單一數據行,而範例輸入應為字串格式。

cpu

要用於最大測試實例的CPU核心數目。 目前支援最多3.5的值。

預設值: None
memory_in_gb

要用於最大測試實例的記憶體數量(以 GB 為單位)。 可以是十進位。 目前支援最多15.0的值。

預設值: None
description
str

與程式代碼剖析執行相關聯的描述。

預設值: None

傳回

類型 Description

例外狀況

類型 Description
<xref:azureml.exceptions.WebserviceException>, <xref:azureml.exceptions.UserErrorException>

register

向提供的工作區註冊模型。

static register(workspace, model_path, model_name, tags=None, properties=None, description=None, datasets=None, model_framework=None, model_framework_version=None, child_paths=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)

參數

名稱 Description
workspace
必要

用來註冊模型的工作區。

model_path
必要
str

模型資產所在的本機檔系統路徑。 這可以是單一檔案或資料夾的直接指標。 如果指向資料夾, child_paths 則可以使用 參數來指定個別檔案來組合成 Model 物件,而不是使用資料夾的整個內容。

model_name
必要
str

要註冊模型的名稱。

tags
dict(<xref:{str : str}>)

要指派給模型的索引鍵值標記選擇性字典。

預設值: None
properties
dict(<xref:{str : str}>)

要指派給模型的索引鍵值屬性選擇性字典。 建立模型之後,就無法變更這些屬性,但是可以新增新的索引鍵值組。

預設值: None
description
str

模型的文字描述。

預設值: None
datasets

Tuple 的清單,其中第一個元素描述數據集模型關聯性,而第二個元素是數據集。

預設值: None
model_framework
str

已註冊模型的架構。 從類別使用系統支援的常數 Framework ,可簡化某些熱門架構的部署。

預設值: None
model_framework_version
str

已註冊模型的架構版本。

預設值: None
child_paths

如果搭配 資料夾提供 , model_path 則只有指定的檔案會組合到Model物件中。

預設值: None
sample_input_dataset

已註冊模型的範例輸入數據集。

預設值: None
sample_output_dataset

已註冊模型的範例輸出數據集。

預設值: None
resource_configuration

執行已註冊模型的資源組態。

預設值: None

傳回

類型 Description

已註冊的模型物件。

備註

除了模型檔案本身的內容之外,已註冊的模型也會儲存模型元數據,包括模型描述、標記和架構資訊,在工作區中管理和部署模型時很有用。 例如,使用標籤,您可以在工作區中列出模型時分類模型並套用篩選。

下列範例示範如何註冊指定標籤和描述的模型。


   from azureml.core.model import Model

   model = Model.register(model_path="sklearn_regression_model.pkl",
                          model_name="sklearn_regression_model",
                          tags={'area': "diabetes", 'type': "regression"},
                          description="Ridge regression model to predict diabetes",
                          workspace=ws)

如果您有因實驗執行而產生的模型,您可以直接從執行對象註冊該模型,而不需要先將它下載到本機檔案。 若要這樣做,請使用 register_model 方法,如 類別中所述 Run

remove_tags

從此模型的標記字典中移除指定的索引鍵。

remove_tags(tags)

參數

名稱 Description
tags
必要

要移除的索引鍵清單

serialize

將此模型轉換成 json 串行化字典。

serialize()

傳回

類型 Description

此模型的 JSON 表示法

update

執行模型的就地更新。

已取代指定參數的現有值。

update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)

參數

名稱 Description
tags
dict(<xref:{str : str}>)

要用來更新模型的標記字典。 這些標籤會取代模型的現有標籤。

預設值: None
description
str

要用於模型的新描述。 此名稱會取代現有的名稱。

預設值: None
sample_input_dataset

用於已註冊模型的範例輸入數據集。 此範例輸入數據集會取代現有的數據集。

預設值: None
sample_output_dataset

要用於已註冊模型的範例輸出數據集。 此範例輸出數據集會取代現有的數據集。

預設值: None
resource_configuration

用來執行已註冊模型的資源組態。

預設值: None

例外狀況

類型 Description

update_tags_properties

執行模型的標記和屬性更新。

update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)

參數

名稱 Description
add_tags
dict(<xref:{str : str}>)

要加入的標籤典。

預設值: None
remove_tags

要移除的標記名稱清單。

預設值: None
add_properties
dict(<xref:{str : str}>)

要加入之屬性的字典。

預設值: None

例外狀況

類型 Description