如何在Azure Machine Learning Python脚本步骤中引用工作区已注册模型
AML Linux计算集群Python脚本读取注册模型的方法
你需要先在提交任务时将工作区已注册的mymodel声明为任务输入,AML会自动将模型下载/挂载到计算节点,可通过以下两种方式获取读取路径:
方式1:使用默认路径读取
如果提交任务时未指定模型的挂载路径,可按默认规则读取:
- 提交任务时将注册模型声明为输入,示例提交代码(本地执行的提交逻辑):
from azure.ai.ml import command from azure.ai.ml.entities import Model # 拉取工作区中已注册的mymodel,latest代表调用最新版本 my_model = Model(name="mymodel", version="latest") # 定义任务,将模型设为名为registered_model的输入 job = command( code="./src", command="python your_script.py", inputs={ "registered_model": my_model }, environment="你的环境名@latest", compute="你的Linux计算集群名" )
- 集群运行的Python脚本中,可通过两种路径读取:
- 相对路径:模型默认存放于
./inputs/<输入名>/,输入名对应上面定义的registered_model,读取代码如下:
import joblib # 如你的模型文件在注册包根目录下名为mymodel.pkl model = joblib.load("./inputs/registered_model/mymodel.pkl")- 绝对路径:AML会自动注入对应输入的环境变量,格式为
AZURE_ML_INPUT_<输入名大写>,读取代码如下:
import os import joblib model_root_path = os.environ.get("AZURE_ML_INPUT_REGISTERED_MODEL") model = joblib.load(os.path.join(model_root_path, "mymodel.pkl")) - 相对路径:模型默认存放于
方式2:自定义挂载路径读取
你也可以在提交任务时手动指定模型的挂载路径,无需记忆默认规则:
- 提交任务时指定
path_on_compute参数自定义路径,示例代码:
from azure.ai.ml import command, Input from azure.ai.ml.constants import AssetTypes job = command( code="./src", command="python your_script.py", inputs={ "registered_model": Input( type=AssetTypes.MODEL, path="azureml:mymodel:latest", path_on_compute="/models/mymodel" # 自定义的节点绝对路径 ) }, environment="你的环境名@latest", compute="你的Linux计算集群名" )
- 脚本中直接读取自定义路径即可:
import joblib model = joblib.load("/models/mymodel/mymodel.pkl")
内容的提问来源于stack exchange,提问作者coffee32434
相关产品推荐
相关产品推荐

