Model 類別
表示機器學習訓練的結果。
模型是 Azure Machine Learning 定 型Run 或 Azure 外部的一些其他模型定型程式的結果。 不論模型如何產生,都可以在工作區中註冊,其中它以名稱和版本表示。 透過 Model 類別,您可以封裝模型以搭配 Docker 使用,並將其部署為可用於推斷要求的即時端點。
如需示範模型建立、管理和取用方式的端對端教學課程,請參閱 使用 MNIST 資料和 scikit-learn 使用 Azure Machine Learning 來定型影像分類模型。
模型建構函式。
模型建構函式是用來擷取與所提供工作區相關聯之 Model 物件的雲端標記法。 必須提供名稱或識別碼。
- 繼承
-
builtins.objectModel
建構函式
Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)
參數
- tags
- list
用來篩選傳回結果的選擇性標記清單。 結果會根據提供的清單進行篩選,並依 'key' 或 '[key, value]' 進行搜尋。 例如 ['key', ['key2', 'key2 value']]
- properties
- list
用來篩選傳回結果的屬性選擇性清單。 結果會根據提供的清單進行篩選,並依 'key' 或 '[key, value]' 進行搜尋。 例如 ['key', ['key2', 'key2 value']]
- version
- int
要傳回的模型版本。 與 參數一起 name
提供時,如果有指定之具名模型的特定版本,則會傳回該模型的特定版本。 如果 version
省略 ,則會傳回模型的最後一個版本。
- tags
- list
用來篩選傳回結果的選擇性標記清單。 結果會根據提供的清單進行篩選,並依 'key' 或 '[key, value]' 進行搜尋。 例如 ['key', ['key2', 'key2 value']]
- properties
- list
用來篩選傳回結果的屬性選擇性清單。 結果會根據提供的清單進行篩選,並依 'key' 或 '[key, value]' 進行搜尋。 例如 ['key', ['key2', 'key2 value']]
- version
- int
要傳回的模型版本。 與 參數一起 name
提供時,如果有指定之具名模型的特定版本,則會傳回該模型的特定版本。 如果 version
省略 ,則會傳回模型的最後一個版本。
備註
模型建構函式是用來擷取與指定工作區相關聯之 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)
[變數] 區段會列出雲端模型物件之本機表示的屬性。 這些變數應該視為唯讀。 變更其值不會反映在對應的雲端物件中。
變數
- created_by
- dict
建立模型的使用者。
- created_time
- datetime
建立模型時。
- azureml.core.Model.description
Model 物件的描述。
- azureml.core.Model.id
模型識別碼。 這會採用模型名稱 > : < model 版本 > 的形式 < 。
- mime_type
- str
模型 mime 類型。
- azureml.core.Model.name
模型的名稱。
- model_framework
- str
模型的架構。
- model_framework_version
- str
模型的架構版本。
- azureml.core.Model.tags
Model 物件的標記字典。
- azureml.core.Model.properties
模型的索引鍵值屬性字典。 註冊之後就無法變更這些屬性,不過可以新增新的索引鍵值組。
- unpack
- bool
提取至本機內容時,模型是否需要將 (解除封裝) 。
- url
- str
模型的 URL 位置。
- azureml.core.Model.version
模型的版本。
- azureml.core.Model.workspace
包含模型的工作區。
- azureml.core.Model.experiment_name
建立模型的實驗名稱。
- azureml.core.Model.run_id
建立模型的執行識別碼。
- parent_id
- str
模型的父模型識別碼。
- resource_configuration
- ResourceConfiguration
此模型的 ResourceConfiguration。 用於分析。
方法
add_dataset_references |
將提供的資料集與此模型產生關聯。 |
add_properties |
將索引鍵值組新增至此模型的屬性字典。 |
add_tags |
將索引鍵值組新增至此模型的標記字典。 |
delete |
從相關聯的工作區中刪除此模型。 |
deploy |
從零個或多個 Model 物件部署 Webservice。 產生的 Webservice 是即時端點,可用於推斷要求。 Model |
deserialize |
將 JSON 物件轉換成模型物件。 如果指定的工作區不是模型註冊所在的工作區,轉換就會失敗。 |
download |
將模型下載至本機檔案系統的目標目錄。 |
get_model_path |
傳回模型的路徑。 函式會在下列位置搜尋模型。 如果
如果
|
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)
參數
例外狀況
add_properties
將索引鍵值組新增至此模型的屬性字典。
add_properties(properties)
參數
例外狀況
add_tags
將索引鍵值組新增至此模型的標記字典。
add_tags(tags)
參數
例外狀況
delete
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)
參數
- deployment_config
- WebserviceDeploymentConfiguration
用來設定 Web 服務的 WebserviceDeploymentConfiguration。 如果未提供,則會根據所需的目標使用空的組態物件。
- deployment_target
- ComputeTarget
要 ComputeTarget 部署 Webservice 的 。 由於Azure 容器執行個體沒有相關聯的 ComputeTarget ,請將此參數保留為 None,以部署至Azure 容器執行個體。
傳回
對應至已部署 Webservice 的 Webservice 物件。
傳回類型
例外狀況
deserialize
將 JSON 物件轉換成模型物件。
如果指定的工作區不是模型註冊所在的工作區,轉換就會失敗。
static deserialize(workspace, model_payload)
參數
傳回
所提供 JSON 物件的模型標記法。
傳回類型
例外狀況
download
將模型下載至本機檔案系統的目標目錄。
download(target_dir='.', exist_ok=False, exists_ok=None)
參數
傳回
模型檔案或資料夾的路徑。
傳回類型
例外狀況
get_model_path
傳回模型的路徑。
函式會在下列位置搜尋模型。
如果 version
為 None:
- 如果提供工作區) ,請從遠端下載至快取 (
- 從快取azureml-models/$MODEL_NAME/$LATEST_VERSION/載入
- ./$MODEL_NAME
如果 version
不是 None:
- 從快取azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/載入
- 如果提供工作區) ,請從遠端下載至快取 (
static get_model_path(model_name, version=None, _workspace=None)
參數
傳回
磁片上模型的路徑。
傳回類型
例外狀況
get_sas_urls
傳回索引鍵/值組的字典,其中包含檔案名和對應的 SAS URL。
get_sas_urls()
傳回
索引鍵/值組的字典,其中包含檔案名和對應的 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)
參數
- expand
- bool
如果為 true,則會傳回填入所有子屬性的模型,例如執行、資料集和實驗。 將此設定為 false 時,應該會在許多模型的情況下加速 list () 方法完成。
傳回
選擇性篩選的模型清單。
傳回類型
例外狀況
package
以 Docker 映射或 Dockerfile 建置內容的形式建立模型套件。
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
參數
傳回
ModelPackage 物件。
傳回類型
例外狀況
print_configuration
列印使用者設定。
static print_configuration(models, inference_config, deployment_config, deployment_target)
參數
- deployment_config
- WebserviceDeploymentConfiguration
用來設定 Web 服務的 WebserviceDeploymentConfiguration。
例外狀況
profile
分析模型以取得資源需求建議。
這是長時間執行的作業,視資料集大小而定,最多可能需要 25 分鐘的時間。
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
參數
傳回類型
例外狀況
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)
參數
- model_path
- str
模型資產所在的本機檔案系統路徑。 這可以是單一檔案或資料夾的直接指標。 如果指向資料夾, child_paths
則可以使用 參數來指定個別檔案來組合成 Model 物件,而不是使用資料夾的整個內容。
傳回
已註冊的模型物件。
傳回類型
例外狀況
備註
除了模型檔案本身的內容之外,已註冊的模型也會儲存模型中繼資料,包括模型描述、標記和架構資訊,在工作區中管理和部署模型時很有用。 例如,使用標記,您可以在工作區中列出模型時分類模型並套用篩選。
下列範例示範如何註冊指定標記和描述的模型。
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)
如果您有因為實驗執行而產生的模型,您可以直接從 run 物件註冊它,而不需要先將它下載到本機檔案。 若要這樣做, register_model 請使用 類別中所述 Run 的方法。
remove_tags
serialize
update
執行模型的就地更新。
已取代指定參數的現有值。
update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
參數
例外狀況
update_tags_properties
執行模型的標記和屬性更新。
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
參數
例外狀況
意見反應
提交並檢視相關的意見反應