【问题标题】:Why is env different in an Azure ML notbook and an Azure ML terminal?为什么 Azure ML 笔记本和 Azure ML 终端中的 env 不同?
【发布时间】:2022-01-03 22:04:02
【问题描述】:

我正在使用 MS Azure ML,并发现当我启动 Notebook(从 Azure ML Studio)时,它在不同的环境中执行,而不是我创建 Python 脚本并从工作室运行它。我希望能够创建一个特定的环境并让笔记本使用它。 Notebook 运行的环境似乎没有包含我需要的包,我想保留不同的环境。

【问题讨论】:

    标签: python azure azureml azureml-python-sdk azuremlsdk


    【解决方案1】:

    首先打开一个终端,然后使用与您的笔记本电脑相同的计算目标,然后使用现有环境,您可以这样做:

    conda activate existing_env
    conda install ipykernel
    python -m ipykernel install --user --name existing_env --display-name "Python 3.8 - Existing Environment"   
    

    但是,要创建一个新环境并在您的 AzureML Notebook 中使用它,您必须执行以下命令:

    conda create --name new_env python=3.8
    conda activate new_env
    conda install pip
    conda install ipykernel
    python -m ipykernel install --user --name new_env --display-name "Python 3.8 - New Environment"
    

    最后但并非最不重要的一点是,您必须编辑 Jupyter 内核显示名称:

    重要提示请确保您能够轻松地执行所有这些步骤:

    jupyter kernelspec list
    cd <folder-that-matches-the-kernel-of-your-environment>
    sudo nano kernel.json
    

    然后编辑名称以匹配您想要的名称并保存文件。

    【讨论】:

      【解决方案2】:

      使用 Pip、Conda、Docker imageDockerfile,我们可以为您自己的脚本创建 ML 环境。

      我希望能够创建一个特定的环境

      要手动创建环境,

      from azureml.core.environment import Environment
      Environment(name="myenv")
      

      使用 Conda 依赖项或 pip 要求文件使用以下代码创建环境:

      #### From a Conda specification file
      myenv = Environment.from_conda_specification(name = "myenv",
                                                   file_path = "path-to-conda-specification-file")
      
      #### From a pip requirements file
      myenv = Environment.from_pip_requirements(name = "myenv",
                                                file_path = "path-to-pip-requirements-file")
      

      Notebook 运行的环境似乎没有包含我需要的包,我想保留不同的环境。

      要将包添加到您的环境中,可以使用 Conda、pip 或私有 Wheel 文件,但建议使用 CondaDependency 类。

      from azureml.core.environment import Environment
      from azureml.core.conda_dependencies import CondaDependencies
      
      myenv = Environment(name="myenv")
      conda_dep = CondaDependencies()
      
      #### Installs numpy version 1.17.0 conda package
      conda_dep.add_conda_package("numpy==1.17.0")
      
      #### Installs pillow package
      conda_dep.add_pip_package("pillow")
      
      #### Adds dependencies to PythonSection of myenv
      myenv.python.conda_dependencies=conda_dep
      

      使用命令myenv.register(workspace=ws)在工作区中注册您的环境

      list(workspace)列出workspace中的环境

      运行您的特定环境:

      from azureml.core import Run
      Run.get_environment()
      

      要将 Conda 环境作为内核安装在笔记本中,请参阅 add a new Jupyter kernel 并且代码应按照相同的顺序执行:

      conda create --name newenv
      conda activate newenv
      conda install pip
      conda install ipykernel
      python -m ipykernel install --user --name newenv --display-name "Python (newenv)"
      

      要添加、更改或删除 Jupyter 内核,请参阅article

      更多详情请参考Document

      【讨论】:

      • 如果回答对您有帮助,请Accept it as an Answer,以便遇到相同问题的其他人可以找到此解决方案并解决他们的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多