一、TensorFlow概要
什么是TensorFlow?
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,是一个采用数据流图(data flow graphs),用于数值计算的开源的机器学习库。
Tensorflow的命名来源于本身的运行原理:Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,数据流图中的图就是我们所说的有向图。在图这种数据结构中包含两种基本元素:节点和边。这两种元素在数据流图中有自己各自的作用:节点用来表示要进行的数学操作,任何一种操作都有输入\输出,因此它也可以表示数据的输入的起点\输出的终点;边表示节点与节点之间的输入\输出关系,一种特殊类型的数据沿着这些边传递。这种特殊类型的数据在TensorFlow被称之为tensor,即张量,所谓的张量通俗点说就是多维数组。当我们向这种图中输入张量后,节点所代表的操作就会被分配到计算设备完成计算。TensorFlow就是张量从流图的一端流动到另一端的计算过程。
下面这张图可以帮我们了解Tensorflow的基本工作流程:
为什么要用TensorFlow?
TensorFlow既是一个实现机器学习算法的接口,同时也是执行机器学习算法的框架。它前端支持Python、C++、Go、Java等多种开发语言,后端使用C++、CUDA等写成。TensorFlow实现的算法可以在众多异构的系统上方便地移植,如Android、iPhone、CPU服务器,乃至大规模的GPU集群。除了执行深度学习算法,TensorFlow还可以用来实现很多其他算法,包括线性回归、逻辑回归、随机森林等。TensorFlow建立的大规模深度学习模型的应用场景也非常广,包括语音识别、自然语言处理、计算机视觉、机器人控制、信息抽取、药物研发、分子活动预测等,使用TensorFlow开发的模型也在这些领域获得了最前沿的成果。
TensorFlow有哪些特性?
· 灵活性:非严格的“神经网络”库。这意味着我们的计算只要能够表示为数据流图,就能够使用。
· 可移植性:底层核心采用C++便宜,可以运行在台式机、服务器、手机移动等设备上提供对分布式的支持,能够快速构建深度学习集群。
· 多语言支持:前端支持Python、C/C++、Java以及Go,以及非官方支持的Scala,但是目前对Python接口支持最好。
· 高效:提供对线程、队列、异步操作支持,同时支持运行在CPU和GPU上,能够充分发挥硬件潜力。
二、TensorFlow环境搭建(CPU)
基于Windows 10系统
1、 首先,我们需要安装python(Python 3以上的版本均可)。去官方网站https://www.python.org/downloads/下载安装包,打开
在最下面的两个勾选框中建议勾选第二行,这样在安装的过程中可以自动配置好环境变量。
选择 Install Now
出现Setup was successful这个界面就说明python已经在你的电脑上安装成功啦。
2、 接下来安装Tensorflow及其相关组件
右键开始菜单,打开命令提示符(管理员),在命令行中输入pip install tensorflow
注意:使用命令行安装需要确保你使用的网络能够访问谷歌的相关网站(俗话说的“翻墙”),否则会出现连接失败的情况。
出现以上界面时,Tensorflow就已经安装成功,我们就可以对Tensorflow进行测试了。
3、 打开命令提示行(管理员),输入python
然后输入以下代码:
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a+b))
会出现如下结果:
这样TensorFlow的环境就搭建好了。
基于ubuntu系统
因为ubuntu是自带python和pip的,所以通过pip的安装方式极为简单。右键打开终端输入指令:pip3 install tensorflow 即可安装成功。
测试界面如下:
这里有几点需要说明的地方:
1、 以上的安装方法安装的是TensorFlow的CPU版本,GPU版本需要另外安装CUDA与cuDNN,并且在安装前需要确认你的显卡是否支持CUDA。
2、 TensorFlow有其他的安装方法,上述安装方法是笔者认为最简洁的一种。在这里推荐另外两种安装方法供大家参考:基于Anaconda的安装方法(http://blog.csdn.net/qq_36068028/article/details/79398203)、基于Docker的安装方法(http://blog.csdn.net/ixuhangyi/article/details/52291716)。
3、 推荐两款Python的IDE:PyCharm、Spyder。
TensorFlow简单应用——object detection(目标检测)
图像识别是近几年机器学习领域研究的比较热门的一个专题,TensorFlow API中提供了功能强大的识别图像和视频内物体的样例。这个API使用COCO数据集(http://mscoco.org/)训练出来的,其中COCO数据集是一个大约有30万张图像、90种最常见物体的数据集。API中提供了5种不同的模型,使用者可以通过设置不同检测边界范围来平衡运行速度和准确率。下面告诉大家如何运行这个模型。
1、 去Github(https://github.com/tensorflow/models)上下载TensorFlow的源代码
2、 安装需要调用的第三方依赖项:pillow、lxml、matplotlib、comtypes等
3、 在https://github.com/google/protobuf/releases下载protoc-3.5.1-win32.zip,解压后双击protoc.exe安装,并为其配置环境变量
4、 输入以下指令安装Jupyter Notebook
python -m pip install--upgrade pip
python -m pip installjupyter
5、 解压之前下载好的models-master,找到object_detection/protos文件夹,运行指令:protoc --python_out=./ xxx.proto,生成对应的.py文件
6、 用下列方式打开Jupyter Notebook
7、 在弹出的网页中找到object_detection_tutorial.ipynb,在新标签页中打开,点击Cell——Run All,即可运行成功
结语
在深度学习十分火爆的今天,TensorFlow的活跃程度要远远超过Caffe、MXNet等其他主流的深度学习开源工具。本篇推送主要介绍了TensorFlow及其运行原理、环境搭建以及TensorFlow Models的简单应用,希望对大家入门TensorFlow有所帮助。