文章 答疑

AI 入门,从零搭建完整 AI 开发环境,并写出第一个 AI 应用

邹欣, 程序员,现在在微软亚洲研究院AI 团队工作。 曾写作 《编程之美》,《构建之法》 等书。 这个GitChat 将由 AI 团队的多名工程师参与回答读者的问题。
文章 答疑

AI 入门,从零搭建完整 AI 开发环境,并写出第一个 AI 应用

随着 AI 越来越深入的发展,智能革命的浪潮隐约到来,悄然的影响着软件行业。

那么,作为多年的程序员,或者准备着成为新一代程序员的读者们,该如何为智能时代做好准备,成为 AI 时代的程序员呢?网上铺天盖地的教程,大部分都是从高数、线代、概率讲起的算法基础,或者是讨论某某网络的算法,比较模型的效果,偏研究和数据科学。多学一些知识,当然是很好的,但毕竟需要不少的时间,在软件开发中积累的经验好像也用不上太多。

如果程序员们从自己擅长的领域出发,逐步融入 AI 热潮中,岂不是取长补短,事半功倍?从另一方面来看,以后是不是只需要开发 AI 模型就够了呢?显然不是,AI 模型会带来智能革命,但传统的软件开发仍然是基础。就像工业革命发生后,人类仍然需要农业提供足够的粮食;信息革命发生后,也需要工业革命所带来的巨大工业生产力。因此,智能革命也会基于信息革命所构建的巨大的软件制造经验和能力之上。

本文帮你入门 AI 应用开发,写出第一个 AI 程序 -- 手写识别(见下图)。同时会穿插着讲一些必备的 AI 知识和背景,带你走入 AI 新世界的大门。找个网络环境较好的地方,计划好空闲的时间,放松心情,一步步学习下来,保准你收获满满,888。

enter image description here

注意:安装过程中要下载的软件较多,建议在网速稳定且较快的环境下进行。整个时长取决于预先安装的情况,以及网络状况。通常一个多小时即可完成环境搭建和 AI 应用。

配置 AI 开发环境

安装要求

  • Windows 64 位版本
    强烈推荐升级到 Windows 10 的最新发行版,并安装上所有更新。Windows 7,Windows 8 也需要64位版本,推荐安装所有系统更新。
  • Visual Studio
    本教程将安装 Visual Studio 2017。如果有旧版的 Visual Studio 且条件允许,最好先行卸载。特别是 Visual Studio 2012,可能会出现兼容性问题。
  • Python
    在安装 Visual Studio 2017 时,会安装 Python 3.6 版本。如果系统已经有 Python 3.6 将不会再安装它。如果是这种情况,在本文中配置路径时,应配置成当前 Python 3.6 的路径。
  • AI 框架
    本安装过程会安装 TensorFlow,CNTK,pytorch,Keras,Caffe2,Theano,MXNe,Chainer 等流行的 AI 框架。如果你的 Python 环境已经有了一些框架并正在使用中,建议最好选择干净的 Python 环境来安装。以免产生版本冲突,或影响正在使用已安装框架的代码。

检查并安装 Git

Git 是流行的源代码版本管理工具,应用非常广泛。在接下来的安装过程中,会通过它下载一些 AI 组件。

先打开命令行或终端窗口,输入 git,看是否能找到此命令。如果命令行返回了 Git 命令的用法说明,则表示已经安装了 Git,可跳过 Git 安装部分。

如果没有安装 Git,打开安装页面,自动下载 Git 安装包。下载完后,点击安装。为了方便使用,在安装向导中需选择在命令提示符中使用 Git(见下图)。其它步骤直接点击 Next

enter image description here

检查并安装 NVIDIA 显卡机器学习包

在机器学习中,有的算法在并行计算下速度会得到很大的提升。而 GPU 由于要进行快速的图形处理,且这类计算可并行程度很高,所以 GPU 有很强的并行计算能力。在运行一些机器学习算法时,同等价位的 GPU 的速度会比 CPU 快上数十倍、甚至百倍。

NVIDIA 的显卡是机器学习领域中最流行的硬件之一,几乎所有框架都集成了对它的支持。安装过程也包括了 NVIDIA 显卡的配置。如果没有 NVIDIA 的显卡,则可跳过这步,直接安装或配置 Visual Studio 2017

确认自己的显卡是 NVIDIA 的,并支持 CUDA

CUDA(Compute Unified Device Architecture)是 NVIDIA 公司推出的通用并行计算架构,能将显卡用于解决各种复杂的计算问题。通过显卡的成百甚至上千个并行核心来加速计算。

访问 NVIDIA 的桌面笔记本显卡列表,并找到自己的显卡型号,点开详情页面。如果在左边能看到下图的高亮部分,则表示支持 CUDA(部分高端显卡会进入购买页面,这也表示支持 CUDA),否则开始安装或配置 Visual Studio 2017

enter image description here

如果不太清楚如何检查 GPU 型号或找不到自己的显卡,可先跳过下面 CUDA 与 cuDNN 的安装过程,在接下来安装AI框架时能够自动检测 GPU 是否受支持,是否安装了 CUDA,cuDNN。

如果发现显卡是支持的,但没有安装 CUDA 与 cuDNN,可以在安装结束后再进行这一步。

安装 NVIDIA 机器学习相关组件

如果确认了是支持 CUDA 的 NVIDIA 显卡,根据下面的步骤来完成配置。

1.确认安装了最新的显卡驱动。

2.安装 CUDA 9.0。

为了减少 TensorFlow 等机器学习框架的兼容性问题,这里选择了安装兼容性最佳的 CUDA 9.0。

首先,进入 CUDA 9.0 下载页面

然后,选择对应的操作系统、CPU 架构、操作系统版本来确认安装包。安装包本身也比较大,如果网速稳定,可以选择网络(network)版本来按需安装。如果网速不稳定,或者要在多台机器上安装,可选择本地安装(local)版本一次性完成下载。

选择好后,直接点击打开或另存到本地再运行。

注意:如果安装过程中出现了以下错误,可能是由于显卡较新,而 CUDA 9.0 中不包含对应的驱动。这时候可以重新开始安装过程,选择自定义安装,并取消勾选显卡驱动(Driver Components)再试一次。

enter image description here

3.配置 cuDNN

cuDNN(CUDA Deep Neural Network)是 NVIDIA 基于 CUDA 的专为深度神经网络优化的计算库。cuDNN 的下载安装过程比较复杂,需要在 NVIDIA 网站进行注册后才可下载。

首先进入 cuDNN 下载页面,点击展开 Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0。然后根据对应的操作系统选择对应的版本,随后会进入下面的登录界面。

enter image description here

注册或者登录后,就能看到下载链接,或者重新点击下载页面再来一遍。

enter image description here

解压开会有一个 dll 扩展名的动态链接库文件,将其拷贝到 CUDA 安装目录的 bin 目录中即可。CUDA 的默认安装路径路径如下:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin

安装或配置 Visual Studio 2017

注意:如果有 Visual Studio 的其它版本,尽可能卸载后,再安装 Visual Studio 2017。特别是 Visual Studio 2012 或者更低版本,否则在使用时有可能发生版本冲突相关的问题。

如果已经安装了 Visual Studio 2017,只需要从开始菜单中搜索并打开 Visual Studio Installer。选择更多中的修改来确认是否安装了 Python开发.NET 桌面开发这两个工作负载。如果没有,则选上并安装。

1.进入下载页面,指向下载 Visual Studio,并点击 Community 2017

Visual Studio Community 版是完全免费的,包含有 Visual Studio 的大部分基础功能,也能全面的支持 AI 应用开发。只需要用微软账户登录后,就可以一直使用。

enter image description here

2.运行安装程序后,会打开工作负载的选择界面。至少要选择 Python 开发.NET 桌面开发

Visual Studio 将多种场景下的开发都按照工作负载的方式进行了组合,只需要勾选上,就能顺畅的进行对应场景下的开发了。安装完成后,可以通过开始菜单中的 Visual Studio Installer 再次打开这个界面,安装其它工作负载。

enter image description here

随后点击右下方的安装按钮,即可开始安装。根据选择的内容多少以及网络情况,安装时长也会很不一样。此处需耐心等待。

安装 Visual Studio Tools for AI

Visual Studio Tools for AI 是 AI 集成开发环境中较核心的部分,包含了训练任务管理、模型推理等功能。

1.启动 Visual Studio,在菜单栏中选择工具 -> 扩展和更新

enter image description here

2.点击联机,并在右上方输入 tools for ai 后回车。如果第一次没有搜索出来,可再增加一个空格,并再次回车搜索。搜索结果出来后,点击 Microsoft Visual Studio Tools for AI 的下载按钮。

enter image description here

3.下载完成后,关闭所有 Visual Studio 窗口,来触发插件的安装过程。关闭 Visual Studio 后,稍等数秒钟,即会出现安装界面,点击修改。等待整个安装过程结束,然后点击关闭

enter image description here

4.再次打开 Visual Studio,在菜单栏会看到 AI 工具,表示安装完成。

enter image description here

安装 AI 框架

在机器学习中,特别是深度学习中,经常会因为各种原因,需要在不同的 AI 框架之间切换。而不同的框架可能还依赖于不同的底层库版本。因此,搭建一个顺手的 AI 开发环境,颇会花些时间和精力。

本文通过微软 AI 示例库中的一键安装脚本,简化了 AI 框架的安装过程。

一次性就能装上 TensorFlow,CNTK,pytorch,Keras,Caffe2,Theano,MXNet,Chainer 等流行框架,以及 jupyter,matplotlib, pandas,scipy,onnx,tf2onnx,scikit - learn,xgboost,libsvm 等流行工具。这个 1000 多行的安装脚本会节省大量的安装配置时间,也让新手不再被卡在安装配置环境这一步上。

下载微软 AI 样例库

打开命令提示符或终端窗口,选择并进入某个用来存放代码的目录,如 %USERPROFILE% 。运行下列命令,来下载微软 AI 示例库,完成后进入该目录。

注意:请确保整个路径中没有中文。不少机器学习框架对多语言支持并不好,为了防止因此出现的问题,保证整个路径没有中文等扩展字符集。

注意:推荐用管理员权限打开命令提示符窗口。以免 Python 安装目录需要管理员权限才能写入文件。步骤:打开开始菜单 -> 用键盘输入 cmd -> 右击出现的命令提示符 -> 选择以管理员身份运行 -> 通过 cd 命令选择一个合适的目录,如 cd /d %USERPROFILE%

git clone https://github.com/Microsoft/samples-for-ai.git
cd samples-for-ai
运行安装脚本

1.命令提示符下可能没有配置 Python 的路径。运行 python --version 检查一下。

enter image description here

如出现上图的内容,表示系统路径中没有 Python ,则根据系统中 Visual Studio 的安装路径,用下列命令来设置 Python 路径。

注意:如果修改过 Visual Studio 的默认安装路径,则此命令也需要做相应的修改。

set PATH=C:\Program Files (x86)\Microsoft Visual
Studio\Shared\Python36_64;%PATH%

2.执行 install.py

python installer/install.py

3.检查并配置 CUDA、cuDNN

如果前面的步骤中,因为不确定显卡是否支持 CUDA 等原因,而跳过了 CUDA 安装部分。这里可以看一下输出。如果在输出的前面几行里发现了以下字样,则表示支持 CUDA,且没有正确安装好 CUDA 或(和)cuDNN。等待安装脚本运行完后,参考前文完成 "

2018年8月13日,周二晚上8点30分。微软亚洲研究院 AI 邹欣团队带来了主题为《AI 入门,从零搭建完整 AI 开发环境,并写出第一个 AI 应用》的交流。以下是主持人飘静整理的问答实录,记录了作者和读者问答的精彩时刻。


内容提要:

  • 不使用 Visual Studio AI 的情况下,有什么 AI 替代工具?
  • 想从游戏行业转行做 AI,怎么上手比较容易?
  • 对于 AI 方向的学习,能不能提供一个大致的学习方向?
  • 可以介绍一下入职 AI 开发岗位需要达到的水平层次吗,学完 AzureSchool 上面的 AI 课程可以吗?
  • 我在运行 python installer/install.py时出现了这样的错误,请问应该怎么解决?
  • 请问我们的目标是搭建怎样的 AI,图像相关还是语言处理?
  • 请问学习 Al 需要什么数学基础?
  • 有什么比较好的书籍?
  • AI 和普通的程序有什么定义上的区别吗?文中提到的数字识别算法可以介绍一下原理吗? AI 的是怎么通过训练实现自主学习的?
  • 在 GitHub怎么学习别人的项目代码,一般一个深度学习项目中包括那几个部分的文件,能否具体说明下?
  • 可以用一个简易的案例,来说明一下 AI 使用的比较全面程序过程吗?
  • 想问问 AI 就业的问题:具体来说有哪些岗位目前需求比较大?想了解一下各自的特点,单说 AI 太空泛了,有什么样的要求?
  • 终极目标是想拿 MS 的算法 Offer,如何知道自己要达到什么样的程度才能出去面试拿 Offer,接下来如何规划比较好?
  • 请问在理论推导和项目实践之间对于一个初学者以及研究生来说该如何权衡,以及该把理论和实践分别进行到什么程度才算 OK?
  • 终极目标是想拿 MS 的算法 Offer,如何知道自己要达到什么样的程度才能出去面试拿 Offer,接下来如何规划比较好?
  • 怎样将 TF 训练的 Model 转换成转换成转换成 ml.net 认可的格认可的格认可的格式?
  • AI 数据科学家目前待遇怎么样,将来待遇会有什么变化吗?
  • 从零基础开始学,大概要多久才能入手 AI?
  • VS Code 的 AI 开发环境怎样搭建?
  • 现在学界有没有其它途径去更好的去解决 Representation。然后使得机器学习像人的学一样,更加灵活的抓住事物的本质,从而完成模型建立?
  • Replika 这个聊天机器是不是摘下来人工智能皇冠上的明珠?想知道目前 AI 的应用规模,比如这种聊天机器人需要什么规模的架构才能这么智能的响应合适的对话?
  • 请问在三线城市,从事 AI 行业的切入点有什么好建议吗?
  • 关于分布式 Tensorflow 的搭建经验可以传授下吗?**
  • 准备学习人工智能的研究生,请问怎样规划三年的学习,需要那种精神才能学好这个行业?**
  • MS 对机器学习或者深度学习岗的实习生或者应届生的要求可否具体说?
  • 用 VS 开发 AI 应用,你发的那个链接是 Windows 下 VS 平台开发 AI 应用吗?
  • 算法大概有哪些种类?与 ACM 中的算法有多少联系?
  • 有没有一些练手的小项目,或者学习平台推荐?能够上手实现了交流是否正确或者有没有优化方法的?
  • 今天在各大新闻头条看到诺贝尔奖得主,说以后治愈疾病会更廉价,假如终极疾病是死亡,现在发展的 AI,结合哪些方面可以治愈死亡?
  • 安装 AI 框架 git clone 的时候出错 error: RPC failed; curl 18 transfer closed with outstanding read data remaining,怎么办?
  • 现在人工智能的门槛是怎么样的?大专学历对以后的发展有限制吗?
  • 因为现在的机器学习算法,尤其是无监督学习更像是黑箱。那么我们学习算法的时候应该学到什么程度,需要了解内部的具体运算吗?还是说可以做到算法实现,或者调库就可以了?
  • 请问微软亚洲研究院的实习生岗位,机器学习、计算机视觉方面实习有什么要求吗?
  • 你觉得现在对于机器视觉方向,传统的方法(数字图像处理、传统的图像配准、识别、分割)还有必要花大量时间学习吗?
  • MSRA 现在开始进行有针对 Hardware 体系结构方面的研究了吗?是否有实习的机会?

问:不使用 Visual Studio AI 的情况下,有什么 AI 替代工具?

宋驰答:要使用什么样的 AI 工具,其实应该从有什么样的 AI 问题要解决,用了什么样的框架、在什么平台上部署来决定。Visual Studio 是强大的集成开发环境,支持多种语言的开发,不管是应用、 Web 还是 AI 开发,都是不错的开发环境。Visual Studio Tools for AI 是基于 Visual Studio 的插件,目标是为从入门到训练、应用开发全方位提供支持,包括从安装配置环境,到训练任务管理、Python 语言支持,基于 C# 的应用开发。除此之外,还有基于 Visual Studio Code 的轻量级 Tools for AI,专为数据科学家打造的。


问:想从游戏行业转行做 AI,怎么上手比较容易?

宋驰答: AI 具体分工有研究者、数据科学家、以及应用开发人员。本文也是主要为传统程序员转行做应用开发准备的,可以先从应用开发入手,了解 AI 应用的具体方法。AI 应用开发和传统软件开发区别不大,但要培养 AI 意识,了解 AI 的一些设计方法。如果有合适的机会,可以学习数据科学家做的特征工程、算法选择与调参的工作。数据科学家需要掌握基本的高数求导、线代矩阵、大部分概率的知识。在这基础上,再学习经典的机器学习算法。然后多加实践,积累经验,就能成为合格的数据科学家了。至于研究者,直接转型比较难,可以从进学校再读书开始。


问:对于 AI 方向的学习,能不能提供一个大致的学习方向?

宋驰答: AI 方向的学习也基本同上。主要是根据自己的兴趣、特点来选择不同的发展方向。如果喜欢编程那么还是往 AI 应用开发、架构设计方向发展。如果是对数据特别敏感,又喜欢尝试各种新东西,耐得住性子,数学也有一定的基础或兴趣,可以试试数据科学家的方向。兴趣是最好的老师。找到自己喜欢的行业,一辈子不后悔。


问:可以介绍一下入职 AI 开发岗位需要达到的水平层次吗,学完 AzureSchool 上面的 AI 课程可以吗?

宋驰答: AI 开发岗位实际上也是看公司的需求,没有统一的标准。AI 职业发展方向其实和程序员是类似的。在招聘中,主要看和招聘方的契合度。不管从哪方面来发展,最终能掌握的知识越宽越深越好。不管什么行业,方向都是学无止境的。AI 方向比较热,变化也比较多,就更需要投入更多的时间来学习。如果有心仪的职位想要争取,那就得加倍的努力,不放过每一个细节,特别是算法层面,对每一个细节都了如指掌。同时还要积累很多经验,能回答出各种实际的问题。那么基本上 AI 相关的职位就都没问题了。


问:我在运行 python installer/install.py时出现了这样的错误,请问应该怎么解决?

enter image description here

宋驰答:安装问题需要在红色文字的最下方截图,才能看见错误信息。Python 的错误堆栈打印方向和其它程序不大一样。错误消息也在红色文字的最底部。一般来说是网络问题,可以找个网络稳定的时间或地方重新运行就好了。这个问题是因为窗口没有在管理员权限下打开。


问:请问我们的目标是搭建怎样的 AI,图像相关还是语言处理?

宋驰答:教程中搭建的是比较简单的图像分类问题,主要是为了入门 AI 应用开发。


问:请问学习 Al 需要什么数学基础?

宋驰答: AI 数据科学家一般要对高数的求导微分部分、线代的矩阵运算部分、以及概率比较深入的学习。接下来就是对经典的统计算法、机器学习算法的学习。


问:有什么比较好的书籍?

宋驰答:具体的书籍暂时没有推荐的。一般网上搜索出来的一些著名教材都可以看看。现在 AI 数据科学家入门需要准备"

即可畅读图文课全站文章
即可阅读全文

打开微信"扫一扫",将本文章分享到朋友圈

快给朋友分享吧!

收藏 收藏

1236人已收藏