深度学习框架之TensorFlow的概念及安装(ubuntu下基于pip的安装,IDE为Pycharm)
2015年11月9日,Google发布人工智能系统TensorFlow并宣布开源。
1.TensorFlow的概念
TensorFlow 是使用数据流图进行数值计算的开源软件库。也就是说,TensorFlow 使用图(graph)来表示计算任务。图中的节点表示数学运算,边表示运算之间用来交流的多维数组(也就是tensor,张量)。TensorFlow 灵活的架构使得你可以将计算过程部署到一个或多个CPU或GPU上。
TensorFlow 最初是由 Google Brain Team 的研究人员和工程师开发的,主要是 Google’s Machine Intelligence research organization 用来进行机器学习和深度神经网络研究的,但是这个系统在其它很多领域也是通用的。
模型的抽象表示是由框架自动处理的,这使得TensorFlow 及 Theano 特别适合发展基于梯度优化算法的新模型。
Theano 的主要缺点是对上述符号模型进行编译的时间较长,而 TensorFlow 有效地改善了这一点,也就是编译时间较短。
TensorFlow 的另一个优点是它的支持工具——TensorBoard ,将模型的训练过程可视化。这样,用户可以交互式地考察模型的结构,也可以观察参数和模型性能的改变。
TensorFlow 的开源版本只能运行在一台机器上,不过它支持多处理器(CPUs或GPUs)并行运算。
1.1 什么是数据流图?
数据流图用有向图来描述数学计算,图中有点和边。
节点通常进行数学计算,但也可以作为终点来表示结果,或者读/写持久变量(persistent variables)。
边用来描述节点之间的输入/输出关系。这些边携带不定大小的多维数组或张量。
这些节点被分配到计算装置上,异步执行。一旦所有的tensor同时到达了,就会进行并行计算。
由于图中张量(tensor)的流动(flow),所以我们称之为 TensorFlow。
1.2 TensorFlow的特点
- Deep Flexibility,灵活性。TensorFlow并不是一个死板的神经网络的库,只要你可以将你的计算过程表示成数据流图,你就可以使用TensorFlow。定义新的计算就像写一个Python函数那么简单,成本并不大。如果你看不见你需要的底层的数据操作,可以通过C++来添加。
- True Portability,可移植性。TensorFlow在CPU或GPU上运行,可以在笔记本、服务器、或移动计算平台运行。不需要特殊硬件,不需要改变代码,就可以在移动设备上训练模型,封装Docker 和 TensorFlow 就可以在云上进行计算。
- Connect Research and Production,学术和工业兼得。在Google,科学家们用 TensorFlow 测试新的算法,产品团队用 TensorFlow 训练模型为用户服务。
- Auto-Differentiation,自动辨别。TensorFlow 的自动辨别能力 有益于实现那些基于梯度的机器学习算法。当你使用TensorFlow时,你为自己的预测模型定义计算的框架结构,再加上目标函数,接着只需要添加数据,TensorFlow 就会为你计算导数,也就是梯度。
- Language Options,语言选择。TensorFlow中可以使用Python接口,以及简单的C++接口,来构建和执行你的计算图(computational graphs)。如果你有兴趣,也可以提供自己所喜爱语言的接口——Lua, JavaScript, 或 R 等等。
- Maximize Performance,性能最大化。TensorFlow 允许你充分利用你可用的硬件:32 CPU cores and 4 GPU cards,线程、队列及异步计算等。你可以将TensorFlow图中的计算元素自由分配到不同的设备上,交给TensorFlow来处理。
1.3 谁可以用TensorFlow?
学生、研究人员、爱好者、黑客、工程师、开发者、发明者及创新者等等。
TensorFlow目前并不完整,它需要扩展。Google只是给了一个初始版本的源代码,他们希望建立一个活跃的开源社区,以使得TensorFlow越来越好。
目前在使用 TensorFlow 的公司有:Google、Uber、Twitter、DeepMind、京东等等。
1.4 为什么谷歌将TensorFlow开源呢?
「TensorFlow」是 Google 多年以来内部的机器学习系统。如今,Google 正将此系统作为开源系统,并将此系统的参数公布给业界工程师、学者和拥有大量编程能力的技术人员,这意味着什么呢?
答案很简单:Google认为,机器学习是未来创新的关键成分,这一领域的研究是全球范围的,并且发展很迅速,但就是缺乏标准工具。Google的工程师们用TensorFlow在做面向用户的产品和服务,Google的研究团队也打算分享TensorFlow的实现历程,他们希望TensorFlow能成为机器学习的最好工具之一。
打个不太恰当的比喻,如今 Google 对待 TensorFlow 系统,有点类似于对待旗下移动操作系统 Android。如果更多的数据科学家开始使用 Google 的系统来从事机器学习方面的研究,那么这将有利于 Google 对日益发展的机器学习行业拥有更多的主导权。
1.5 TensorFlow 与计算生物学
使用当前的深度学习的方法有一个先决条件:拥有许多样本的数据集。
像 识别与特定疾病相关的基因或 methylation probes,样本集很少,所以就不能用深度学习进行分析。【哭……我就是想用深度学习做疾病基因识别啊……】
想要使用深度学习模型,第一步就是解决如何表示数据的问题。如:剪接点、RNA-蛋白质结合位点、或甲基化。也就是说,你的样本的数量要远远超过变量的数量。
所以说,只要这关键的一步解决了,TensorFlow 就会为你打开深度学习的大门。
2.Tensorflow的安装(基于pip)
Pip 是一个 Python 的软件包安装与管理工具。并且,Tensorflow只能在Linux环境下进行安装,具体在VMware下安装Linux系统详情可以参看我另外一篇博客。
2.1 安装pip(需要在超级管理员权限下进行安装)
- sudo apt-get install python-pip python-dev
注:出现以上界面表示pip已经安装成功!
2.2 安装Tensorflow
- sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
2.3 测试
- >>> import tensorflow as tf
- >>> hello = tf.constant('Hello, TensorFlow!')
- >>> sess = tf.Session()
- >>> print sess.run(hello)
- Hello, TensorFlow!
注:Linux下退出Python方法:Ctrl+D
2.4 安装IDE Pycharm
官网下载Community版 for Linux,根据官网教程的步骤进行安装。
注:可以直接在Linux中的浏览器中进行下载。
首先,将文件拷贝到希望安装的位置。
- cd /home/andy
然后解压缩文件:
- tar xfz pycharm-community-2016.3.tar.gz
打开 pycharm.sh 文件所在目录:
- cd pycharm-community-2016.3/bin
运行 pycharm.sh 文件以安装 pycharm:
- ./pycharm.sh
安装好后会自动打开pycharm,接下来进行一系列的设置:
出现下面界面时,说明安装成功了。
选择“Create New Project”,创建新的工程。默认编译器是python 2.7。
然后在新创建的工程上,右键选择“New->Python File ”,创建一个新的python文件Py01。
在文件Py01中写入一段代码进行测试。
可见,测试结果正确,可以在 Pycharm 上 import tensorflow了!
2.5 将Pycharm锁定到启动器
在Ubuntu下,每次都需要找到 pycharm.sh 所在的文件夹,执行 ./pycharm.sh,打开pycharm,非常麻烦。
所以,我们最好能创建一个快捷方式。Ubuntu 的快捷方式都放在“计算机/usr/share/applications” 下。
首先在该目录下创建一个Pycharm.desktop:
- sudo gedit /usr/share/applications/Pycharm.desktop
然后输入以下内容,注意 Exec 和 Icon 需要找到你自己电脑中正确的路径,GenericName 和 Comment 中关于Pycharm的版本号你也需要根据实际情况定:
- [Desktop Entry]
- Type=Application
- Name=Pycharm
- GenericName=Pycharm2017
- Comment=Pycharm2017:The Python IDE
- Exec="/home/wangfang/Pycham/pycharm-community-2017.1.3/bin/pycharm.sh" %f
- Icon=/home/wangfang/Pycham/pycharm-community-2017.1.3/bin/pycharm.png
- Terminal=pycharm
- Categories=Pycharm;
保存后,通过路径/usr/share/applications/路径即可找到对应桌面Pycharm.desktop文件,然后双击打开,再锁定到启动器就好了。
参考文献:
- TensorFlow 官网
- 极客学院——TensorFlow 官方文档中文版
- 极客学院——下载与安装
- 极客学院——MNIST机器学习入门(构建softmax回归模型)
- 极客学院——深入MNIST(构建深度卷积神经网络)
- Ladislav Rampasek and Anna Goldenberg, TensorFlow: Biology’s Gateway to Deep Learning?
- werm520的专栏:Ubuntu安装PyCharm
- Ubuntu下安装Anaconda
- Linux(Ubuntu14.04)下安装Anaconda和Spyder
- Ubuntu下如何安装TensorFlow
- http://andyjin.applinzi.com
深度学习框架之TensorFlow的概念及安装(ubuntu下基于pip的安装,IDE为Pycharm)的更多相关文章
- 深度学习框架比较TensorFlow、Theano、Caffe、SciKit-learn、Keras
TheanoTheano在深度学习框架中是祖师级的存在.Theano基于Python语言开发的,是一个擅长处理多维数组的库,这一点和numpy很像.当与其他深度学习库结合起来,它十分适合数据探索.它为 ...
- 吴裕雄--天生自然python Google深度学习框架:Tensorflow实现迁移学习
import glob import os.path import numpy as np import tensorflow as tf from tensorflow.python.platfor ...
- 吴裕雄--天生自然python Google深度学习框架:TensorFlow实现神经网络
http://playground.tensorflow.org/
- 吴裕雄--天生自然python Google深度学习框架:Tensorflow基础应用
import tensorflow as tf a = tf.constant([1.0, 2.0], name="a") b = tf.constant([2.0, 3.0], ...
- 1. Ubuntu下使用pip方式安装tensorflow
参考文档: https://tensorflow.google.cn/install/pip 首先明确,我们采用python3环境. 1. 先确认本机已安装好python3的环境 python3 -- ...
- TensorFlow与主流深度学习框架对比
引言:AlphaGo在2017年年初化身Master,在弈城和野狐等平台上横扫中日韩围棋高手,取得60连胜,未尝败绩.AlphaGo背后神秘的推动力就是TensorFlow--Google于2015年 ...
- ArXiv最受欢迎开源深度学习框架榜单:TensorFlow第一,PyTorch第四
[导读]Kears作者François Chollet刚刚在Twitter贴出最近三个月在arXiv提到的深度学习框架,TensorFlow不出意外排名第一,Keras排名第二.随后是Caffe.Py ...
- 转:【AI每日播报】从TensorFlow到Theano:横向对比七大深度学习框架
http://geek.csdn.net/news/detail/139235 说到近期的深度学习框架,TensorFlow火的不得了,虽说有专家在朋友圈大声呼吁,不能让TensorFlow形成垄断地 ...
- 深度学习与CV教程(8) | 常见深度学习框架介绍
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...
随机推荐
- AIX上安装配置DB2
在2台P550数据库主机上安装DB2 V8.2,两台数据库主机间进行数据库HA配置,实现数据库双机互备. 本文档编写以磁盘大小360G,数据库名CRAMS_JS为例. 设备准备 请系统管理员协助划分D ...
- C语言入门:04.数据类型、常量、变量
一.数据 1.什么是数据 生活中时时刻刻都在跟数据打交道,比如体重数据.血压数据.股价数据等.在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据.图片数据.视频数据,还有聊QQ时产生的文字数 ...
- Mysql存储引擎federated
Mysql数据库存储引擎federated(联盟) 意思就是把两个不同区域的数据库联系起来,以致可以访问在远程数据库的表中的数据,而不是本地的表.->专门针对远程数据库的实现->一般情况下 ...
- SSR & Next.js & Nuxt.js
SSR & Next.js & Nuxt.js Server Side Rendering https://nextjs.org/ https://nuxtjs.org/ SSR &a ...
- MySQL查询where条件的顺序对查询效率的影响
看到有资料说,where条件的顺序会影响查询的效率,根据的逻辑是: where条件的运行是从右到左的,将选择性强的条件放到最右边,可以先过滤掉大部分的数据(而选择性不强的条件过滤后的结果集仍然很大), ...
- BZOJ1004 HNOI2008Cards(Burnside引理+动态规划)
直接给了一个置换群(当然要自己手动加上不洗牌的情况).考虑求不动点数量即可.对于一个置换,求出所有循环的长度,然后设f[i][x][y]为给前i个循环着色后,用了x张红色卡片.y张绿色卡片的方案数,d ...
- Again Prime? No Time. UVA - 10780(质因子分解)
m^k就是让m的每个质因子个数都增加了k倍 求m的质因子 在n!中增加了多少倍就好了,因为m^k 表示每一个质因子增加相同的倍数k 所以我们需要找到增加倍数最小的那个..短板效应 其它质因子多增加 ...
- bzoj 3531 [Sdoi2014]旅行 (树剖+线段树 动态开点)
3531: [Sdoi2014]旅行 Time Limit: 40 Sec Memory Limit: 512 MBSubmit: 2984 Solved: 1312[Submit][Status ...
- AIO + ByteBufferQueue + allocateDirect 终于可以与NIO的并发性能达到一致。
看到这个标题,你可能会惊讶,相比NIO,AIO不就是为了在高并发的情况下代替NIO的吗? 是的,没错,但是在并发不高的情况下,AIO的性能表现很多时候还不如NIO. 在一台机子上用ab进行并发压力测试 ...
- 日志备份的shell脚本
以前工作中写的日志备份的脚本,现记录一下日志备份脚本代码,以后工作中遇到遇到需要备份或者清理日志的时候可以拿来简单修改一下使用,减少工作量. 把备份脚本添加到Linux定时任务中,可以定时执行. 日志 ...