干获|详解深度学习框架——TensorFlow
Posted 全球人工智能
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干获|详解深度学习框架——TensorFlow相关的知识,希望对你有一定的参考价值。
2015 年 11 月 9 日,谷歌宣布对 TensorFlow 开源。随后,TensorFlow 成为了当今世 界最流行的机器学习软件之一,目前被广泛用于研究、教育和生产等各个领域。这一年 里,TensorFlow 的不断被优化,TensorFlow 的机器智能地位已显得举足轻重。我们希望帮 助 TensorFlow 的新、老用户提高使用 TensorFlow 的能力,充分利用该库最强大的功能! 考虑到不同的读者基础不同,本文将对机器学习读者最关心的几个部分对 TensorFlow 充 分介绍:八大机器学习库的对比、TensorFlow 的优势、什么时候使用 TensorFlow、 TensorFlow 的安装。在下一文中,将深入 TensorFlow 的语法、机器学习模型。
八大机器学习框架的对比:
(1) TensorFlow:深度学习最流行的库之一,是谷歌在深刻总结了其 前身 DistBelief 的经验教训上形成的;它不仅便携、高效、可扩 展,还能再不同计算机上运行:小到智能手机,大到计算机集群都 能;它是一款轻量级的软件,可以立刻生成你的训练模型,也能 重新实现它;TensorFlow 拥抱创新,有强大的社区、企业支持, 因此它广泛用于从个人到企业、从初创公司到大公司等不同群体。
(2) Caffe: 卷积神经网络框架,专注于卷积神经网络和图像处理,是 用 C ++语言写成的。
(3) Chainer: 一个强大、灵活、直观的机器学习 Python 软件库,能 够在一台机器上利用多个 GPU,是由深度学习创业公司 Preferred Networks 开发;Chainer 的设计基于 define by run 原 则,也就是说,该网络在运行中动态定义,而不是在启动时定 义。
(4) CNTK: 微软研究人员开发的用于深度神经网络和多 GPU 加速技 术的完整开源工具包。微软称 CNTK在语音和图像识别方面,比 谷歌的 TensorFlow 等其它深度学习开源工具包更有优势。
(5) Deeplearning4j: 专注于神经网络的 Java 库,可扩展并集成 Spark,Hadoop 和其他基于 Java 的分布式集成软件。
(6) Nervana Neo: 是一个高效的 Python 机器学习库,它能够在单个 机器上使用多个 GPU。
(7) Theano: 是一个用 Python 编写的极其灵活的 Python 机器学习 库,用它定义复杂的模型相当容易,因此它在研究中极其流行。
(8) Torch: 是一个专注于 GPU 实现的机器学习库,得到了几个大公 司的研究团队的支持。
TensorFlow 的优势:
(1)可用性
TensorFlow 工作流程相对容易,API 稳定,兼容性好,并且 TensorFlow 与 Numpy 完美结合,这使大多数精通 Python 数据科学家很容易上手。与其他一些库不同,TensorFlow 不需要任 何编译时间, 这允许你可以更快地迭代想法。在 TensorFlow 之上 已经建立了多个高级 API,例如 Keras 和 SkFlow,这给用户使用 TensorFlow 带来了极大的好处
(2)灵活性
TensorFlow 能够在各种类型的机器上运行,从超级计算机到嵌入式 系统。它的分布式架构使大量数据集的模型训练不需要太多的时 间。TensorFlow 可以同时在多个 CPU,GPU 或者两者混合运行。
(3)效率
自 TensorFlow 第一次发布以来,开发团队花费了大量的时间和努力 来改进 TensorFlow 的大部分的实现代码。 随着越来越多的开发人 员努力,TensorFlow 的效率不断提高。
(4) 支持
TensorFlow 由谷歌提供支持,谷歌投入了大量精力开发 TensorFlow,它希望 TensorFlow 成为机器学习研究人员和开发人 员的通用语言。此外,谷歌在自己的日常工作中也使用 TensorFlow,并且持续对其提供支持,在 TensorFlow 周围形成了 一个强大的社区。谷歌已经在 TensorFlow 上发布了多个预先训练好 的机器学习模型,他们可以自由使用。
3. TensorFlow 的安装:
为了满足安装 TensorFlow 的依赖支持工具,我们将使用 virtualenv 来创建一个虚拟 Python 环境。首先,我们需要确保与 Virtualenv 一 起安装了 pip,Python 的包管理器。 运行以下命令进行安装(取决 于用户的操作系统)
Linux-64 用户
在终端(同时按住 ctrl+Alt+t 启动)输入以下命令:
Python 2.7 用户
$ sudo apt-get install python-pip python-dev python-virtualenv(注意所有的$符号不需要输入)
Python 3 用户
$ sudo apt-get install python3-pip python3-dev python3-virtualenv
现在让我们创建一个包含这个环境的目录:
$ sudo mkdir ~/env
接下来,我们将使用 virtualenv 命令创建环境。 在这个例子中,它 位于〜/ env / tensorflow。使用如下命令:
$ virtualenv --system-site-packages ~/env/tensorflow
然后,使用 source 激活环境:
$ source ~/env/tensorflow/bin/activate
(然后注意你敲入回车后开始出现了“tensorflow”指示符)
然后直接输入 deactivate 关闭。
由于你将经常使用虚拟环境,因此创建一个快捷方式启动它,而不是 每次必须写出整个源。这下一个命令将一个 bash 别名添加到〜 / .bashrc 文件,这时只要在你想启动它时键入 tensorflow 即可:
$ sudo printf '\nalias tensorflow="source ~/env/tensorflow/bin/activate"' >> ~/.bashrc
特别提醒:启动终端后,最好先输如命令:sudo –i,然后会提醒你输入密码,linux 输入密码一 般不会显示出来,记住你的密码输入即可。
以下均是针对 python2.7 用户:
接下来安装“简易版”的 tensorflow,使用如下命令:
$ pip install --upgrade
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27none-linux_x86_64.whl
安装 Jupyter Notebook(先安装 ipython):
执行以下命令:先在终端中输入输入 sudo –i,然后输入回车,再根据 提示输入密码,最后输入 tensorflow 启动,然后再执行以下安装,以 防出现错误
$ sudo python2 -m pip install ipykernel
$ sudo python2 -m ipykernel install
$ sudo apt-get install build-essential
$ sudo pip install jupyter
安装 matplotlib:
$ sudo apt-get build-dep python-matplotlib python-tk
最后,让我们检查安装是否成功。创建一个新目录 tf_notebooks,输入该目录并运行 jupyter notebook。
打开终端,输入下面命令,打开 jupyter notebooks:
sudo –i,再回车
输入用户密码,再回车
$后输入:tensorflow,再回车
然后$后面继续输入:mkdir tf-notebooks,再回车
$后面继续输入:cd tf-notebooks,再回车
$后面继续输入:jupyter notebook,再回车
最后打开了如下界面:
本机选择了 Python 2,输入了如下代码并运行如下结果:
https://www.tensorflow.org/versions/master/get_started/os_setup.html#installationfor-mac-os-x
4. 深入阅读:
(1) https://www.tensorflow.org/,提供了最新的文档、API和学习指导。
(2) https://github.com/tensorflow/tensorflow,你可以对tensorflow 贡献你的智慧,也可以查看源代码。
(3) https://github.com/tensorflow/models,根据个人的目标, 你可以随时重用这些模型。
(4) https://research.googleblog.com/,提供来自谷歌的关于 tensorflow 的最新应用与更新。
(5) https://www.kaggle.com/,在这里你可以找到大量公共数据集,是目前线上认可度最高,参与人数最多的线上竞赛平台。
(6) https://www.data.gov/,美国的门户网站,用于查找全美的公共数据集。
以上是关于干获|详解深度学习框架——TensorFlow的主要内容,如果未能解决你的问题,请参考以下文章
实践:《21个项目玩转深度学习基于TensorFlow的实践详解》PDF+源代码
《21个项目玩转深度学习:基于TensorFlow的实践详解》高清带标签PDF版本学习下载
tensorflow学习笔记--深度学习中的epochs,batch_size,iterations详解