Azure机器学习——配置 Azure 机器学习开发环境


本节介绍如何配置 Azure 机器学习的开发环境。 官方文档对此做了非常详细的介绍。本节对官方文档做了一定简化,重点介绍如何在本地计算机配置 Azure 机器学习的开发环境。

一、4种开发环境

Azure 机器学习可以在很多平台上使用。 对开发环境的唯一硬性要求是需要 Python 3。 同时建议使用独立的环境,如 Anaconda 或 Virtualenv。
下表显示了本节中涉及到的每个开发环境及其优点和缺点。

环境优点缺点
基于云的 Azure 机器学习计算实例(预览)入门的最简单方法。 整个 SDK 已安装到你的工作区 VM 中,笔记本教程已预克隆并可随时运行。缺乏对开发环境和依赖项的控制。 Linux VM 产生的额外成本(VM 可以在不使用时停止,以避免收费)。 请参阅定价详细信息
本地环境完全控制开发环境和依赖项。 在您选择的任何生成工具、环境或 IDE 中运行。需要更长的时间才能开始。 必须安装必需的 SDK 包,并且还必须安装环境(如果尚未安装)。
Azure Databricks适用于在可缩放的 Apache Spark 平台上运行大规模密集型机器学习工作流。用于试验机器学习或小规模试验和工作流的多余。 Azure Databricks 产生的额外成本。 请参阅定价详细信息
Data Science Virtual Machine (DSVM)与基于云的计算实例(即预装的 Python 和 SDK)类似,但还预安装了其他热门数据科学和机器学习工具。 易于缩放,并与其他自定义工具和工作流组合。与基于云的计算实例相比,较慢的入门体验。

二、必备条件

Azure 机器学习工作区(工作区是Azure机器学习的顶级资源中心,所有的Azure机器学习试验都在工作区下面开展)。

  • 如果你还没有创建Azure机器学习工作区,请参考此节创建
  • 若要为本地计算机安装 SDK 环境、Jupyter Notebook 服务器或Visual Studio Code,还需要:
    • Anaconda或miniconda)包管理器。
    • 在 Linux 或 macOS 上,需要 bash shell。
    • 在 Windows 上,需要命令提示符或 Anaconda 提示符(由 Anaconda 和 Miniconda 安装)。

三、配置环境

由于我一般都是在本地计算机上做Azure机器学习开发,所以首先给大家介绍在本地计算机上配置Azure机器学习开发环境。

本地计算机

使用本地计算机(也可能是远程虚拟机)时,请创建 Anaconda 环境并安装 SDK。 下面是一个示例:

  • 下载并安装Anaconda (Python 3.7 版)(如果尚未安装)。
  • 打开 Anaconda 提示符,并使用以下命令创建环境:运行以下命令以创建环境。
conda create -n myenv python=3.6.5
  • 然后激活环境。
conda activate myenv

此示例使用 python 3.6.5 创建一个环境,但可以选择任何特定的 subversions。 对于某些主要版本(建议使用 3.5 +),SDK 兼容性可能不会得到保证,如果遇到错误,建议在 Anaconda 环境中尝试不同版本。 下载组件和包时,创建环境需要花费几分钟。

  • 在新环境中运行以下命令,以启用环境特定的 IPython 内核。 当在 Anaconda 环境中使用 Jupyter 笔记本时,这将确保预期内核和包导入行为:
conda install notebook ipykernel

然后运行以下命令以创建内核:

ipython kernel install --user --name myenv --display-name "Python (myenv)"
  • 使用以下命令安装包:
    此命令通过笔记本和 automl 额外内容安装基本 Azure 机器学习 SDK。 automl 是一个比较大的包,如果不打算进行自动机器化学习试验,则可以将其从方括号中删除。 默认情况下,安装automl 包的时候还会安装 Azure 机器学习数据准备包 作为其依赖项。
pip install azureml-sdk[notebooks,automl]

上述安装了运行Azure机器学习的默认安装包,当然它还有很多附加组件和高级功能,如果需要,参考此处安装

  • 为机器学习试验安装其他程序包。比如TensorFlow、PyTorch等等。
conda install <new package>
#或者
pip install <new package>

安装完成了,就可以通过Jupyter Notebook或者Visual Studio Code来使用Azure机器学习SDK。
一般按上述步骤在本地计算机安装Azure机器学习SDK后,就可以开始各种机器学习试验了。如果涉及到大型项目开发,需要使用环境来跟踪和重现项目的软件依赖关系,那么可以使用Azure机器学习的Environment类在训练和部署中重复使用某个环境,具体操作请参考此链接

基于云的计算实例

这个是一个比较有意思的应用。相当于你在Azure机器学习工作区中创建了一台虚拟机,虚拟机的规格可以自己选择。这台虚拟机已经提前准备好了 Jupyter 笔记本服务器、JupyterLab 以及完整的Azure ML 环境,自己无需再安装或配置任何内容。
创建这个计算实例的方法也很简单,你只需要在Azure机器学习studio的计算栏目中,在“计算实例”下方点击新建,定义计算实例名称和虚拟机规格后就可以创建成功。
使用起来也很方便,如果计算实例已经启动,点击“应用程序URI”下方的Jupyter,就会在默认浏览器中打开Jupyter notebook,notebook的根目录是这台虚拟机的/home。之后就可以在notebook中开展机器学习试验。
这个计算实例实际上是一台绑定到Azure机器学习工作区的虚拟机,工作区给了我们一个便捷使用的接口从而不用通过ssh来连接它。计算实例每次启动和停止都会花费一些时间。另外,此计算实例也是按照云上虚拟机定价收费的,因此每次使用完后最好将其停止,以节省费用。
图1 Azure机器学习studio种的计算实例
图1 Azure机器学习studio种的计算实例

Data Science Virtual Machine

DSVM是Azure上一种特殊的虚拟机,与一般虚拟机不同的是,该虚拟机在创建时已经预配好了以下环境:

  • TensorFlow、PyTorch、Scikit-learn、XGBoost 和 Azure 机器学习 SDK 等包
  • Spark Standalone 和 Drill 等常用数据科学工具
  • Azure CLI、AzCopy 和存储资源管理器等 Azure 工具
  • Visual Studio Code 和 PyCharm 等集成开发环境 (IDE)
  • Jupyter Notebook 服务器

Azure 机器学习 SDK 适用于 Ubuntu 或 Windows 版本的 DSVM。 但是,如果还计划将 DSVM 用作计算目标,则仅支持 Ubuntu。
在portal中创建DSVM请查看创建 Ubuntu Data Science Virtual Machine创建 Windows Data Science Virtual Machine

DSVM 上已安装 Azure 机器学习 SDK。 若要使用包含此 SDK 的 Conda 环境,请使用以下某个命令:

  • 对于 Ubuntu DSVM:
conda activate py36
  • 对于 Windows DSVM:
conda activate AzureML

若要验证是否可以访问 SDK 并检查版本,请使用以下 Python 代码:

import azureml.core
print(azureml.core.VERSION)

Azure Databricks

Azure Databricks 是 Azure 云中基于 Apache Spark 的环境。 它通过基于 CPU 或 GPU 的计算群集提供基于笔记本的协作环境。如果有兴趣了解和使用,请参考此处

四、创建工作区配置文件

在本地安装好Azure机器学习SDK后,你可以通过以下代码连接到机器学习工作区:

from azureml.core import Workspace

workspace_name = 'your workspace name'
subscription_id = 'your subscription id'
resource_group = 'your resource group name'

ws = Workspace.get(name=workspace_name,subscription_id=subscription_id,resource_group=resource_group)
print(ws.name, ws.resource_group, ws.location, sep='\n')

其中workspace_name、subscription_id和resource_group可以根据下图查到:
图2 工作区的相关配置信息
图2 工作区的相关配置信息
———————————————————————————————————————————————————————————————
注意:为了确保能够连接成功,在连接工作区之前建议先使用az login登陆Azure,具体步骤如下:

  1. 下载和安装 Azure CLI
  2. 如果使用Azure China,那么在Windows cmd或者Linux终端中输入:
az cloud set --name AzureChinaCloud

将Azure设置为AzureChina。
如果要切换成AzureGlobal,则输入:

az cloud set --name AzureCloud
  1. 在Windows cmd或者Linux终端中输入
az login

将打开默认浏览器进入Azure登陆页面。登陆后一般就能正常连接到工作区。
———————————————————————————————————————————————————————————————
workspace_name、subscription_id和resource_group是连接工作区的令牌,不要将其泄露出去。为了进一步保障安全,建议将这三个值保存到json配置文件中,通过ws = Workspace.from_config(‘config.json’)来连接工作区,避免重要信息在代码中泄露。

ws = Workspace.from_config(path='config.json')
print(ws.name, ws.resource_group, ws.location, sep='\n')

有3中方式可以创建配置文件:

直接写一个json配置文件

自己写入一个配置文件。 该文件含包含工作区的配置信息。 然后将其复制到某个文件夹下面。
图3 工作区json配置文件
图3 工作区json配置文件

下载文件

Azure 门户中,从工作区的 “概述” 部分选择 “下载配置文件”。然后将其放到需要使用的文件夹中。
图4 portal上下载工作区配置文件
图4 portal上下载工作区配置文件

以编程方式创建文件

在以下代码片段中,你可以通过提供订阅 ID、资源组和工作区名称来连接到工作区。 然后,它将工作区配置保存到文件中:

from azureml.core import Workspace

subscription_id = '<subscription-id>'
resource_group  = '<resource-group>'
workspace_name  = '<workspace-name>'

try:
    ws = Workspace(subscription_id = subscription_id, resource_group = resource_group, workspace_name = workspace_name)
    ws.write_config(path='my_path',file_name='config.json')
    print('Library configuration succeeded')
except:
    print('Workspace not found')

此代码会将配置文件写入my_path/.azureml/config.json文件。

五、总结

  • 介绍了Azure机器学习开发的4种环境,以及每种环境的配置方法,重点介绍了在本地计算机的配置方法。
  • 介绍了3种创建工作区配置文件的方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值