创建你的 AI 应用!

你有没有想过这3个问题?

如何成为 AI 程序员? 能不能从自己擅长的领域步入 AI 热潮? 究竟做什么才能让老板追着给我加薪?

你也许会觉得: AI 程序员这么优秀,是因为他们聪明,而我只能笨鸟先飞,勤能补拙喽,当然不是!只要你掌握 AI 程序开发,还怕老板不追着你加工资?!

所以,本文将教你写出第一个 AI 程序 – 手写识别(见下图),入门 AI 应用开发。

注意:安装过程建议在网速稳定且较快的环境下进行。

一、配置 AI 开发环境

1. 安装要求

  • Windows 64 位版本 强烈推荐升级到 Windows 10 的最新发行版,并安装上所有更新。
  • Visual Studio 本教程将安装 Visual Studio 2017。如果有旧版的 Visual Studio 且条件允许,最好先行卸载。
  • Python 在安装 Visual Studio 2017 时,会安装 Python 3.6 版本。在本文中配置路径时,应配置成当前 Python 3.6 的路径。
  • AI 框架 本安装过程会安装 TensorFlow,CNTK,pytorch,Keras,Caffe2,Theano,MXNe,Chainer 等流行的 AI 框架。建议最好选择干净的 Python 环境来安装。

2. 检查并安装 Git

Git 是流行的源代码版本管理工具。在接下来的安装过程中,会通过它下载一些 AI 组件。下载完后,点击安装。为了方便使用,在安装向导中需选择在命令提示符中使用 Git(见下图)。其它步骤直接点击 Next。

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

NVIDIA 的显卡是机器学习领域中最流行的硬件之一,几乎所有框架都集成了对它的支持。安装过程也包括了 NVIDIA 显卡的配置。确认自己的显卡是 NVIDIA 的,并支持 CUDA。

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

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

安装 NVIDIA 机器学习相关组件

  • 确认安装了最新的显卡驱动
  • 安装 CUDA 9.0

首先,进入 CUDA 9.0 下载页面

然后,选择对应的操作系统、CPU 架构、操作系统版本来确认安装包。选择好后,直接点击打开或另存到本地再运行。

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

  • 配置 cuDNN

cuDNN(CUDA Deep Neural Network)是 NVIDIA 基于 CUDA 专为深度神经网络优化的计算库。

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

注册或者登录后,就能看到下载链接。

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

4. 安装或配置 Visual Studio 2017

打开 Visual Studio Installer。选择更多中的修改来确认是否安装了 Python 开发 与 .NET 桌面开发这两个工作负载。

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

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

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

安装完成后,可以通过开始菜单中的 Visual Studio Installer 再次打开这个界面,安装其它工作负载。

随后点击右下方的安装按钮,即可开始安装。

5. 安装 Visual Studio Tools for AI

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

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

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

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

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

6. 安装 AI 框架

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

本文通过微软 AI 示例库中的一键安装脚本,简化了 AI 框架的安装过程。节省大量的安装配置时间,也让新手不再被卡在安装配置环境这一步上。

7. 下载微软 AI 样例库

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

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

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

8. 运行安装脚本

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

如出现上图的内容,表示系统路径中没有 Python ,则根据系统中 Visual Studio 的安装路径,用下列命令来设置 Python 路径。注意:如果修改过 Visual Studio 的默认安装路径,则此命令也需要做相应的修改。

2)执行 install.py

3)检查并配置 CUDA、cuDNN

如果前面的步骤中,因为不确定显卡是否支持 CUDA 等原因,而跳过了 CUDA 安装部分。如果在输出的前面几行里发现了以下字样,则表示支持 CUDA,且没有正确安装好 CUDA 或(和)cuDNN。

命令行窗口完成后回车一下,但不要关闭,接着开始训练第一个模型。

二、训练第一个模型

下载的 samples-for-ai 中包含了大量的机器学习训练和应用的示例。使用 TensorFlow 的 MNIST 示例来测试一下环境安装是否成功,也为下一步准备好 AI 模型。

运行过程中会打印出一些 error 字样。别担心,这都是 AI 训练过程中正常的错误率信息。模型在训练时的错误率会逐步下降, AI 模型推理预测出结果也越来越准确了。

三、创建第一个 AI 应用

克隆代码,并导入训练好的模型,就可以试试自己的第一个 AI 应用了!接下来分析一下核心的代码。

  • 把程序跑通
  • 克隆代码

使用下面的命令来克隆 AI 应用的代码。代码里有一个应用的窗体项目,预先写好了所有的代码。同上,要选择好放置代码的路径,如:cd /d %USERPROFILE%

注意:放置克隆代码的路径中不能含有中文。

运行完上面的脚本后,就会在 Visual Studio 2017 中打开这个解决方案。

引用模型

1)首先创建模型项目。在解决方案资源管理器中,右击解决方案,指向添加,再点击新建项目。

注意,一定要在解决方案上右击,否则不会出现新建项目的菜单。

2)在弹出的添加新项目的对话框里,选择 AI Tools 下的 Inference 后,在右边选择模型推理类库(.NET Framework)。然后在下面的名称处改为 Model,并点击确定。

注意:名称一定要保持一致(包括大小写),这是生成代码的命名空间。

3)点击确定后,Visual Studio 会提示在检查环境,完成后会显示下图。红色的框先不用担心,点击浏览。

4)浏览到示例代码的下载路径,并继续选择到如下路径中的 saved_model.pb 文件,并点击打开。

注意:参考前文训练模型部分的代码来找到示例的路径。

5)点击打开后,会出现分析模型的过程,完成后,就会如下图。这时候,再在类名中输入 Mnist,最后点击确定。第一次导入模型会下载所依赖的库,因此,正在创建项目 “ Model ” … 的对话框会显示较长时间。

注意:Mnist 会是生成代码的类名,所以也要保持一致(包括大小写)。另注意单词中 n 和 i 的位置。

分析模型会调用 TensorFlow 来分析模型文件的输入输出等信息,以便生成相应的代码,有时会花一两分钟。

6)一旦创建项目完成后,先检查一下是不是如下图产生了 Model 项目,并且里面有 packages.config 文件。如果没有看到此文件,通常是由于网速过慢,下载超时造成的。然后,右击 MNIST.App 项目的引用,并点击添加引用。

如果有兴趣的话,可以点开 Mnist 目录看看生成的代码。这里面还包含了优化后的模型数据文件。

注意:要在引用上右击。

7)在弹出的对话框中,点击项目,并在右侧将 Model 勾上。这样就能在窗体项目中引用 Model 项目了。

8)现在按下 CTRL + F5,或者点击工具栏上的启动按钮。你的第一个 AI 应用就运行起来了!666。

四、理解代码

该文件包括了界面联动、数据预处理两部分的代码,以及一行推理预测的代码。界面联动是为了实现手写输入时的良好体验,而数据预处理部分是在推理前,将用户输入的笔迹变为模型所需要输入的浮点数组。

原文发布于微信公众号 - GitChat精品课(CSDN_Tech)

原文发表时间:2018-10-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非典型程序猿

你不知道的gRPC反向代理

可用性、可靠性和扩展性是衡量后台服务的基本标准,HTTP反向代理,是任何一个提供大型Web服务后台所必备的,用以提高服务的这些基础参数,且通过支持到负载均衡而进...

2.5K120
来自专栏用户2442861的专栏

tesseract-ocr 实现图片识别功能

http://blog.sina.com.cn/s/blog_56d988430102w37c.html

68810
来自专栏沃趣科技

Oracle并行基础

Oracle并行基础 概述 ? Oracle企业版有一项非常厉害的技术:并行查询,也就是说一个语句可以雇佣多个服务器进程(parallel slaves也叫PX...

51270
来自专栏逆向技术

逆向知识第八讲,if语句在汇编中表达的方式

           逆向知识第八讲,if语句在汇编中表达的方式 一丶if else的最简单情况还原(无分支情况) 高级代码: #include "stdafx...

27360
来自专栏北京马哥教育

4KB 扇区磁盘上的 Linux:实际建议

为何更改为 4096 字节扇区? 如果您熟悉磁盘结构,就知道磁盘是被分解成扇区 的,大小通常是 512 字节;所有读写操作均在成倍大小的扇区中进行。仔细查看,就...

38380
来自专栏向治洪

TensorFlow下载与安装

TensorFlow简介 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意...

399100
来自专栏沃趣科技

Oracle压缩黑科技(三):OLTP压缩

原文链接:https://www.red-gate.com/simple-talk/sql/oracle/compression-in-oracle-part-...

39770
来自专栏QQ音乐技术团队的专栏

​PNG图片压缩对比分析

随着版本的迭代,业务的增加,QQ音乐apk的大小已经超过25M,其中res目录占用的大小超过5.5M,所以提出了对安装包进行瘦身的技术需求。

2.6K90
来自专栏xingoo, 一个梦想做发明家的程序员

手把手教你cuda5.5与VS2010的编译环境搭建

目前版本的cuda是很方便的,它的一个安装里面包括了Toolkit`SDK`document`Nsight等等,而不用你自己去挨个安装,这样也避免了版本的不同步...

25870
来自专栏计算机视觉战队

每日一学——TensorFlow的学习

什么是TensorFlow? TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表...

39580

扫码关注云+社区

领取腾讯云代金券