有没有一种方法可以从自定义注册环境在Azure ML Notebook中创建虚拟环境(和内核)?

7z5jn7bk  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(100)

我已经在Azure机器学习中注册了一个自定义环境(通过Environments选项卡)(提供Docker文件和conda_dependencies.yaml),我计划将其用于培训作业。现在,我希望能够在AzureML笔记本中使用这个环境,以进行实验和开发代码,我最终计划将其用于培训工作。
我想知道是否有一种方法可以在AzureML notebook中创建一个基于上一步注册环境的内核?
我已经遵循了多个教程来做到这一点,特别是:

我能够在AzureML notebook中创建新的conda venv(在终端会话中从conda_dependencies.yaml文件或简单地作为新的venv并逐个手动安装包)并基于此venv创建新的内核。我不能做的是根据我已经在Environments选项卡中创建的注册环境创建venv。根据文档(link),应该有一种方法可以通过使用Environment.build_local()方法来做到这一点,但它不适合我。
我尝试运行以下代码:

from azureml.core.workspace import Workspace
from azureml.core import Environment

ws = Workspace.from_config()

myenv = Environment.get(ws, 'my_previously_registered_environment')

myenv.build_local(ws)

字符串
此代码仅运行几秒钟,并输出以下内容:

Saving setup content into  /tmp/tmpXYZXYZXY


没有新的venv被创建,至少我没有通过运行看到它:

%conda env list


我是否以错误的方式使用了Environment.build_local()方法(或使用了错误的参数)?
如果无法使用Environment.build_local()从已注册的环境中在AzureML笔记本中创建venv,那么是否至少有一种方法可以从AzureML笔记本中获取conda_dependencies.yaml文件(我在环境注册期间使用的)(例如:它是否保存在存储中的某个地方,以便我可以从Python访问它)?我试图能够创建venv和内核的基础上注册的环境,通过运行(简单)脚本(S)没有任何手动复制。

oxf4rvwz

oxf4rvwz1#

我已经创建了一个自定义环境,其中包含conda.yaml文件

要从自定义环境中获取yaml文件,您可以使用以下代码片段:

from azureml.core.workspace import Workspace
from azureml.core import Environment
import os

ws = Workspace.from_config()
myenv = Environment.get(ws, 'my_conda_envtest')
myenv.save_to_directory("env2.yaml")

字符串
上面的代码将保存conda_dependencies.ymlenv2.yaml目录。



然后,您可以使用此conda_dependencies.yml文件创建conda envkernel

相关问题