AzureML中如何获取打印curated环境的yml依赖配置文件
问题根因
AzureML 训练类Curated环境(比如之前使用的AzureML-AutoML)会直接把Conda依赖暴露在env.python.conda_dependencies属性下,但推理类Curated环境默认不会提前加载该属性,直接访问会拿到None值,触发属性报错。
正确获取.yml配置的方案
方案1:获取完整环境全量yml配置
直接调用环境对象自带的序列化方法,会输出包含基础镜像配置、推理服务配置、Conda依赖、环境变量在内的完整可复现环境yml,是最直接的方式:
from azureml.core import Environment infer_env = 'AzureML-pytorch-1.10-ubuntu18.04-py37-cpu-inference' curated_pytorch_infer_env = Environment.get(workspace=ws, name=infer_env, version=4) # 打印完整环境yml print(curated_pytorch_infer_env.serialize_to_string())
方案2:单独提取Conda依赖段
如果只需要Conda依赖部分的配置,先触发环境完整定义加载,再访问对应属性即可:
# 触发环境全量定义拉取 curated_pytorch_infer_env.get_env_definition(ws) # 加载完成后即可正常读取Conda依赖 print(curated_pytorch_infer_env.python.conda_dependencies.serialize_to_string())
兜底方案
如果上述方法还是无法读取,可临时克隆环境后读取依赖,用完删除临时环境即可:
# 克隆curated环境生成临时可编辑副本 temp_env = curated_pytorch_infer_env.clone("temp-env-for-dump") # 读取依赖 print(temp_env.python.conda_dependencies.serialize_to_string()) # 清理工作区临时环境 temp_env.delete(ws)
内容的提问来源于stack exchange,提问作者Mattpats
相关产品推荐
相关产品推荐

