闲置资源再利用:个人电脑上畅玩 TensorFlow

前言

眼下 github 社区最火的开源项目莫过于 tensorflow (后简称TF),但是在云上玩 TF 存在成本高,部署难诸多问题。腾讯公司提供的 Tesla 是个不错的解决方案,也存在资源竞争,数据上传麻烦,调试不便等问题,倘若在虚拟机环境自己搭建环境,又存在 GPU 支持等问题。本文介绍一种基于 windows 平台下搭建 TF 运行和开发环境,带大家畅玩 TF 。

一、个人电脑玩TF的理由

之所以选择在个人电脑上玩TF最主要的原因成本低廉+取材简单,对于非专业人士也都可以搞个人工智能来取悦自己。具体而言,还有以下几个理由:

门槛低

目前市面上90%个人电脑采用windows系统,工具软件多,开发上手简单容易,而且TF平台不同于以往的计算平台如spark/hadoop等,对windows支持相对比较友好。采用Python运行环境,软件安装也十分方便,不会受到IDC的各种网络限制。

GPU支持

大部分个人电脑基本配备了nvidia的独显(不要问我ATI显卡为啥不行),像笔者平时很少玩3D游戏,显卡基本都在闲置,将TF跑在GPU上提升资源利用率,还可以一边训练模型一边工作,丝毫不会受到影响。

IDE支持

目前TF主工程目录的python代码超过20W行,若没有一个好的IDE支持,通过裸奔方式编写/阅读代码简直就是一件不可思议的事情。window平台下有许多优秀的python开发IDE提供语法高亮,代码补全,跳转调试功能,非常好用,例如Sublime、PyCharm、Eclipse等等。

二、个人电脑玩TF的姿势

2.1 安装TF

第一步: 下载安装Python工具

官网推荐安装3.5.x版本:下载工具,安装过程一路向西。

第二步: 升级pip(不升级的可能安装TF包失败)

> python -m pip install -U pip

(如果出现网络请设置HTTPS_PROXY/HTTP_PROXY环境变量)

第三步: 安装VS2015 Redistributable

下载链接

第四步: 下载TensorFlow安装包

带 GPU 功能下载链接 ( 推荐 )

单 CPU 功能下载链接 ( 不推荐 )

第五步: 安装TensorFlow安装包

> cd /d (PATH)

> pip install tensorflow_gpu-1.2.0rc0-cp35-cp35m-win_amd64.whl

2.2 安装Cuda

首先,要确保机器本身显卡计算能力在3.5以上:查询链接。

接着,需要安装两个软件:CUDA Toolkit和cuDNN

CUDA Tookit: 下载链接( 选择版本8.1 )

cuDNN: 下载链接( 选择版本5.1 )

先安装Tookit,然后将cuDNN压缩文件解压到Tookit安装目录中,bin对应bin。

最后,验证cuda是否安装成功:(两个方法)

方法1: 安装GPU-Z软件(推荐方法)

查看GPU状态(出现cuda就说明成功了)

方法2: 命令行方式

> cd /d (PATH)\CUDA\v8.0\extras\demo_suite>

> deviceQuery.exe

发现在部分笔记本安装完之后找不到设备(GeForce940M)的情况,后通过<font color=Orange>在nvidia官网下载最新版本显卡驱动</font>解决。

2.3 安装PythonIDE

PyCharm和Sublime都是非常不错python开发IDE,前者是JetBrains公司出品,保持JetBrains家族一贯的特色,简单易用但系统开销大。我更愿意使用Sublime3,再带上几个插件轻装上阵(网络问题可通过代理解决)。

CTags插件:代码自动跳转,必装

SublimeREPL插件:代码调试工具,必装

SublimeCodeIntel插件:代码补全工具,必装

Autopep8插件: 代码排版,选装

Pylinter插件: 规范代码风格,语法检查,选装

2.4 畅玩TF

编码: 自动补全

阅码: 自动跳转

调试: 方便快捷

首先,在官网下载模型进行mnist本地训练

接着,再来一个诗和远方(感谢 hansion 提供的 demo,单核机器需要1天的工作在办公电脑45分钟内训练完,CPU运行正常,不影响正常作业。仅仅GPU有点忙,风扇哥,你要使劲点摇)

写在最后

之前搭建过spark/hadoop/xgboost分布式环境,相对而言,TF环境搭建更加简单容易,文档也相对更加完善,它更适合后台以外的开发同学操作机器学习,就我自己而言算是才开始进入TF领地,期待后面通过实战进一步强化对TF的认识,顺带也锻炼一下自己的爱机。

参考文档

TensorFlow社区

NVidia中国

sublime社区

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2850
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2926
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

38610
来自专栏java 成神之路

使用 NIO 实现 echo 服务器

5567
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

5908
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.4K7
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2787
来自专栏魂祭心

原 canvas绘制clock

5094
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3675
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2752

扫码关注云+社区