AzureML中如何将YAML文件传入InferenceConfig?写法正确性验证
AzureML InferenceConfig 环境配置写法验证
首先明确前提:你有一个与score.py同目录的score_env.yaml文件,内容如下:
name: inference_environment dependencies: - python=3.8.1 - pip: - azureml-defaults - numpy - scikit-learn - joblib - pandas
下面针对你给出的两种InferenceConfig实例化写法逐一验证:
写法1分析
inf_conf = InferenceConfig(entry_script="score.py",environment="score_env.yaml",source_directory=folder_path)
这种写法错误。InferenceConfig的environment参数不支持直接传入YAML文件路径,它仅接受两种类型的值:
- 已实例化的AzureML
Environment对象 - 工作区中已注册的环境名称(字符串)
直接传入yaml文件名会触发参数类型不匹配的错误。
写法2分析
inf_conf = InferenceConfig(entry_script="score.py",environment="inference_environment",source_directory=folder_path)
这种写法仅在特定条件下正确:只有当名称为inference_environment的环境已经在你的AzureML工作区中完成注册时,该写法才有效。如果这个环境未注册,直接使用名称会导致找不到环境的错误。
正确的写法示例
如果要通过本地的score_env.yaml文件配置环境并传入InferenceConfig,需要先从YAML文件加载环境对象,再传入参数:
from azureml.core import Environment # 从本地YAML文件加载环境 env = Environment.from_yaml(workspace=your_workspace, file_path="score_env.yaml") # 实例化InferenceConfig inf_conf = InferenceConfig(entry_script="score.py", environment=env, source_directory=folder_path)
如果需要重复使用这个环境,也可以先将加载后的环境注册到工作区,之后就可以像写法2那样直接使用环境名称:
# 注册环境到工作区 env.register(workspace=your_workspace) # 之后可直接使用名称实例化InferenceConfig inf_conf = InferenceConfig(entry_script="score.py", environment="inference_environment", source_directory=folder_path)
内容的提问来源于stack exchange,提问作者Ross
相关产品推荐
相关产品推荐

