深度学习框架之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的特点

  1. Deep Flexibility,灵活性。TensorFlow并不是一个死板的神经网络的库,只要你可以将你的计算过程表示成数据流图,你就可以使用TensorFlow。定义新的计算就像写一个Python函数那么简单,成本并不大。如果你看不见你需要的底层的数据操作,可以通过C++来添加。
  2. True Portability,可移植性。TensorFlow在CPU或GPU上运行,可以在笔记本、服务器、或移动计算平台运行。不需要特殊硬件,不需要改变代码,就可以在移动设备上训练模型,封装Docker 和 TensorFlow 就可以在云上进行计算。
  3. Connect Research and Production,学术和工业兼得。在Google,科学家们用 TensorFlow 测试新的算法,产品团队用 TensorFlow 训练模型为用户服务。
  4. Auto-Differentiation,自动辨别。TensorFlow 的自动辨别能力 有益于实现那些基于梯度的机器学习算法。当你使用TensorFlow时,你为自己的预测模型定义计算的框架结构,再加上目标函数,接着只需要添加数据,TensorFlow 就会为你计算导数,也就是梯度。
  5. Language Options,语言选择。TensorFlow中可以使用Python接口,以及简单的C++接口,来构建和执行你的计算图(computational graphs)。如果你有兴趣,也可以提供自己所喜爱语言的接口——Lua, JavaScript, 或 R 等等。
  6. 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(需要在超级管理员权限下进行安装)

  1. sudo apt-get install python-pip python-dev

注:出现以上界面表示pip已经安装成功!

2.2 安装Tensorflow

  1. sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl

2.3 测试

  1. >>> import tensorflow as tf
  2. >>> hello = tf.constant(‘Hello, TensorFlow!‘)
  3. >>> sess = tf.Session()
  4. >>> print sess.run(hello)
  5. Hello, TensorFlow!

注:Linux下退出Python方法:Ctrl+D

2.4 安装IDE Pycharm

官网下载Community版 for Linux,根据官网教程的步骤进行安装。

注:可以直接在Linux中的浏览器中进行下载。

首先,将文件拷贝到希望安装的位置。

  1. cd /home/andy

然后解压缩文件:

  1. tar xfz pycharm-community-2016.3.tar.gz

打开 pycharm.sh 文件所在目录:

  1. cd pycharm-community-2016.3/bin

运行 pycharm.sh 文件以安装 pycharm:

  1. ./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:

  1. sudo gedit /usr/share/applications/Pycharm.desktop

然后输入以下内容,注意 Exec 和 Icon 需要找到你自己电脑中正确的路径,GenericName 和 Comment 中关于Pycharm的版本号你也需要根据实际情况定:

  1. [Desktop Entry]
  2. Type=Application
  3. Name=Pycharm
  4. GenericName=Pycharm2017
  5. Comment=Pycharm2017:The Python IDE
  6. Exec="/home/wangfang/Pycham/pycharm-community-2017.1.3/bin/pycharm.sh" %f
  7. Icon=/home/wangfang/Pycham/pycharm-community-2017.1.3/bin/pycharm.png
  8. Terminal=pycharm
  9. Categories=Pycharm;

保存后,通过路径/usr/share/applications/路径即可找到对应桌面Pycharm.desktop文件,然后双击打开,再锁定到启动器就好了。

参考文献:

  1. TensorFlow 官网
  2. 极客学院——TensorFlow 官方文档中文版
  3. 极客学院——下载与安装
  4. 极客学院——MNIST机器学习入门(构建softmax回归模型)
  5. 极客学院——深入MNIST(构建深度卷积神经网络)
  6. Ladislav Rampasek and Anna Goldenberg, TensorFlow: Biology’s Gateway to Deep Learning?
  7. werm520的专栏:Ubuntu安装PyCharm
  8. Ubuntu下安装Anaconda
  9. Linux(Ubuntu14.04)下安装Anaconda和Spyder
  10. Ubuntu下如何安装TensorFlow
  11. http://andyjin.applinzi.com
时间: 2024-10-12 12:07:28

深度学习框架之TensorFlow的概念及安装(ubuntu下基于pip的安装,IDE为Pycharm)的相关文章

吴裕雄--天生自然python Google深度学习框架:Tensorflow实现迁移学习

import glob import os.path import numpy as np import tensorflow as tf from tensorflow.python.platform import gfile import tensorflow.contrib.slim as slim # 加载通过TensorFlow-Slim定义好的inception_v3模型. import tensorflow.contrib.slim.python.slim.nets.incepti

TensorFlow与主流深度学习框架对比

引言:AlphaGo在2017年年初化身Master,在弈城和野狐等平台上横扫中日韩围棋高手,取得60连胜,未尝败绩.AlphaGo背后神秘的推动力就是TensorFlow--Google于2015年11月开源的机器学习及深度学习框架. TensorFlow在2015年年底一出现就受到了极大的关注,在一个月内获得了GitHub上超过一万颗星的关注,目前在所有的机器学习.深度学习项目中排名第一,甚至在所有的Python项目中也排名第一.本文将带我们简单了解下TensorFlow,并与其他主流深度学

主流的深度学习框架基本知识

本章内容 1.TensorFlow 2.Keras 3.MXNet 4.CNTK 5.PyTorch 常见的深度学习框架 常见的深度学习框架有 TensorFlow .Caffe.Theano.Keras.PyTorch.MXNet等,如下图所示.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领域,并获取了极好的效果.下面将主要介绍当前深度学习领域影响力比较大的几个框架, 1.TensorFlow-----擅长推断特征提取 2015年11月10日,Google宣布推出全

深度学习框架太抽象?其实不外乎这五大核心组件

许多初学者觉得深度学习框架抽象,虽然调用了几个函数/方法,计算了几个数学难题,但始终不能理解这些框架的全貌. 为了更好地认识深度学习框架,也为了给一些想要自己亲手搭建深度学习框架的朋友提供一些基础性的指导,日前来自苏黎世联邦理工学院计算机科学系的硕士研究生Gokula Krishnan Santhanam在博客上撰文,概括了大部分深度学习框架都会包含的五大核心组件,为我们详细剖析了深度学习框架一般性的内部组织结构.以下由AI科技评论编译. Gokula Krishnan Santhanam认为,

一线开发者在Reddit上讨论深度学习框架:PyTorch和TensorFlow到底哪个更好?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 PyTorch   近日,Reddit用户 cjmcmurtrie 发了一个主题为「PyTorch vs. TensorFlow」的讨论帖,想要了解这两大流行的框架之间各自有什么优势. 原帖地址:https://redd.it/5w3q74 帖子一楼写道: 我还没有从 Torch7 迁移到 TensorFlow.我玩过 TensorFlow,但我发现 Torch7 更加直观(也许是我玩得不够?).我也尝试了

TensorFlow【机器学习】:如何正确的掌握Google深度学习框架TensorFlow(第二代分布式机器学习系统)?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 唐源 VGG REST   服务器 自 2015 年底开源到如今更快.更灵活.更方便的 1.0 版本正式发布,由 Google 推出的第二代分布式机器学习系统 TensorFlow一直在为我们带来惊喜,一方面是技术层面持续的迭代演进,从分布式版本.服务框架 TensorFlow Serving.上层封装 TF.Learn 到 Windows 支持.JIT 编译器 XLA.动态计算图框架 Fold 等,以及

从TensorFlow到PyTorch:九大深度学习框架哪款最适合你?

开源的深度学习神经网络正步入成熟,而现在有许多框架具备为个性化方案提供先进的机器学习和人工智能的能力.那么如何决定哪个开源框架最适合你呢?本文试图通过对比深度学习各大框架的优缺点,从而为各位读者提供一个参考.你最看好哪个深度学习框架呢? 现在的许多机器学习框架都可以在图像识别.手写识别.视频识别.语音识别.目标识别和自然语言处理等许多领域大展身手,但却并没有一个完美的深度神经网络能解决你的所有业务问题.所以,本文希望下面的图表和讲解能够提供直观方法,帮助读者解决业务问题. 下图总结了在 GitH

[Tensorflow实战Google深度学习框架

本系列为Tensorflow实战Google深度学习框架知识笔记,仅为博主看书过程中觉得较为重要的知识点,简单摘要下来,内容较为零散,请见谅. 2017-11-06 [第五章] MNIST数字识别问题 1. MNIST数据处理 为了方便使用,Tensorflow提供了一个类来处理MNIST数据,这个类会自动下载并转化MNIST数据的格式,将数据从原始的数据包中解析成训练和测试神经网络时使用的格式. 2. 神经网络模型训练及不同模型结果对比 为了评测神经网络模型在不同参数下的效果,一般会从训练数据

深度学习框架哪家强:TensorFlow?Caffe?MXNet?Keras?PyTorch?

深度学习框架哪家强:TensorFlow?Caffe?MXNet?Keras?PyTorch?对于这几大框架在运行各项深度任务时的性能差异如何,各位读者不免会有所好奇. 微软数据科学家Ilia Karmanov最新测试的结果显示,亚马逊MXNet在CNN.RNN与NLP情感分析任务上性能强劲,而TensorFlow仅擅长于特征提取. 测试详情更新在Ilia Karmanov的GitHub项目DeepLearningFrameworks(https://github.com/ilkarman/De