服务粉丝

我们一直在努力
当前位置:首页 > 科技 >

从框架优缺点说起,这是一份TensorFlow入门极简教程

日期: 来源:机器之心收集编辑:学习

随着 TensorFLow 在研究及产品中的应用日益广泛,很多开发者及研究者都希望能深入学习这一深度学习框架。而在昨天机器之心发起的框架投票中,2144 位参与者中有 1441 位都在使用 TensorFlow 框架,是所有框架中使用率最高的。但 TensorFLow 这种静态计算图有一定的学习成本,因此也阻挡了很多初学者入坑。本文介绍了学习 TensorFlow 的系列教程,旨在通过简单的理论与实践帮助初学者一步步掌握 TensorFlow 的编程技巧。这一系列教程分为 6 部分,从为什么选择 TensorFlow 到卷积神经网络的实现,介绍了初学者所需要的技能。机器之心在本文介绍了 PyTorch 和 Caffe 等深度学习框架的优缺点及 TensorFlow 基础,包括静态计算图、张量、TensorBoard 可视化和模型参数的保存等。

机器之心此前也介绍过很多 TensorFlow 的学习资源,读者可结合这些资源阅读该系列教程:

学习了!谷歌今日上线基于 TensorFlow 的机器学习速成课程(中文版)机器之心 GitHub 项目:从零开始用 TensorFlow 搭建卷积神经网络教程 | 从零开始:TensorFlow 机器学习模型快速部署指南分布式 TensorFlow 入坑指南:从实例到代码带你玩转多机器深度学习三天速成!香港科技大学 TensorFlow 课件分享TensorFlow 从基础到实战:一步步教你创建交通标志分类神经网络为什么选择 TensorFlow?在本文中,我们将对比当前最流行的深度学习框架(包括 Caffe、Theano、PyTorch、TensorFlow 和 Keras),帮助你为应用选择最合适的框架。

1. Caffe:第一个主流产品级深度学习库,于 2014 年由 UC Berkeley 启动。

优点:

快速支持 GPU漂亮的 Matlab 和 Python 接口缺点:

不灵活。在 Caffe 中,每个节点被当做一个层,因此如果你想要一种新的层类型,你需要定义完整的前向、后向和梯度更新过程。这些层是网络的构建模块,你需要在无穷无尽的列表中进行选择。(相反,在 TensorFlow 中,每个节点被当做一个张量运算例如矩阵相加、相乘或卷积。你可以轻易地定义一个层作为这些运算的组合。因此 TensorFlow 的构建模块更小巧,允许更灵活的模块化。)需要大量的非必要冗长代码。如果你希望同时支持 CPU 和 GPU,你需要为每一个实现额外的函数。你还需要使用普通的文本编辑器来定义你的模型。真令人头疼!几乎每个人都希望程序化地定义模型,因为这有利于不同组件之间的模块化。有趣的是,Caffe 的主要架构师现在在 TensorFlow 团队工作。专一性。仅定位在计算机视觉(但做得很不错)。不是以 Python 编写!如果你希望引入新的变动,你需要在 C++和 CUDA 上编程(对于更小的变动,你可以使用它的 Python 和 Matlab 接口)。糟糕的文档。安装比较困难!有大量的依赖包。只有少量种类的输入格式,仅有一种输出格式 HDF5(虽然你总是可以使用它的 Python/C++/Matlab 接口来运行,并从中得到输出数据)。不适用于构建循环网络。2. Theano:由蒙特利尔大学研究团队构建。Theano 的顶层构建了数值开源深度库,包括 Keras、Lasagne 和 Blocks。Yoshua Bengio 在 2017 年 9 月 28 日宣布,Theano 的开发将终止。因此实际上 Theano 已死!

优点:

计算图的抽象很漂亮(可媲美 TensorFlow)为 CPU 和 GPU 都做了优化很好地适应数值优化任务高级封装(Keras、Lasagne)缺点:

原始的 Theano 只有比较低级的 APIimport numpy for _ in range(T): h = torch.matmul(W, h) + b大型模型可能需要很长的编译时间不支持多 GPU错误信息可能没有帮助(有时候令人懊恼)3. Pytorch:2017 年 1 月,Facebook 将 Python 版本的 Torch 库(用 Lua 编写)开源。

优点:

提供动态计算图(意味着图是在运行时生成的),允许你处理可变长度的输入和输出,例如,在使用 RNN 时非常有用。另一个例子是,在 PyTorch 中,可以使用标准 Python 语法编写 for 循环语句。大量预训练模型大量易于组合的模块化组件易于编写自己的图层类型,易于在 GPU 上运行「Tensorboard」缺少一些关键功能时,「Losswise」可以作为 Pytorch 的替代品缺点:

正式文档以外的参考资料/资源有限无商业支持4. Tensorflow:由较低级别的符号计算库(如 Theano)与较高级别的网络规范库(如 Blocks 和 Lasagne)组合而成。

优点:

由谷歌开发、维护,因此可以保障支持、开发的持续性。巨大、活跃的社区网络训练的低级、高级接口「Tensorboard」是一款强大的可视化套件,旨在跟踪网络拓扑和性能,使调试更加简单。用 Python 编写(尽管某些对性能有重要影响的部分是用 C++实现的),这是一种颇具可读性的开发语言支持多 GPU。因此可以在不同的计算机上自由运行代码,而不必停止或重新启动程序比基于 Theano 的选项更快的模型编译编译时间比 Theano 短TensorFlow 不仅支持深度学习,还有支持强化学习和其他算法的工具。缺点:

计算图是纯 Python 的,因此速度较慢图构造是静态的,意味着图必须先被「编译」再运行5. Keras:Keras 是一个更高级、对用户最友好的 API,具有可配置的后端,由 Google Brain 团队成员 Francis Chollet 编写和维护。

优点:

提供高级 API 来构建深度学习模型,使其易于阅读和使用编写规范的文档大型、活跃的社区位于其他深度学习库(如 Theano 和 Tensorflow,可配置)之上使用面向对象的设计,因此所有内容都被视为对象(如网络层、参数、优化器等)。所有模型参数都可以作为对象属性进行访问。例如:

model.layers[3].output 将提供模型的第三层model.layers[3].weights 是符号权重张量的列表缺点:

由于用途非常普遍,所以在性能方面比较欠缺与 Tensorflow 后端配合使用时会出现性能问题(因为并未针对其进行优化),但与 Theano 后端配合使用时效果良好不像 Tensorflow 或 PyTorch 那样灵活TensorFlow 基础TensorFlow 是一种采用数据流图(data flow graphs),用于数值计算的开源软件库。其中 Tensor 代表传递的数据为张量(多维数组),Flow 代表使用计算图进行运算。数据流图用「结点」(nodes)和「边」(edges)组成的有向图来描述数学运算。「结点」一般用来表示施加的数学操作,但也可以表示数据输入的起点和输出的终点,或者是读取/写入持久变量(persistent variable)的终点。边表示结点之间的输入/输出关系。这些数据边可以传送维度可动态调整的多维数据数组,即张量(tensor)。

计算图与会话学习 Tensorflow 的第一步是了解它的主要特色——「计算图」方法。基本上所有的 Tensorflow 代码都包含两个重要部分:

1. 创建「计算图」,表示计算的数据流

2. 运行「会话」,执行图中的运算

事实上,TensorFlow 将计算的定义与其执行分开。这两个部分将在以下各节中详细说明。在此之前,请记住第一步是导入 Tensorflolibrary!

import tensorflow as tf这样,Python 就可以访问 TensorFlow 的所有类、方法和符号。使用此命令,TensorFlow 库将在别名「tf」下导入,以便以后我们可以使用它而不必每次键入其全称「TensorFlow」。

相关阅读

  • 英语习得之外 培养自主学习能力

  • 教育家洛克说:“事实上,一切教育归根结底都是为了培养人的良好习惯。”“英语课程标准”中明确指出要使学生树立自信心,养成良好的学习习惯和形成有效的学习策略,发展自主学
  • 英语习得之外 自主学习能力培养亦是题中之意

  • 教育家洛克说:“事实上,一切教育归根结底都是为了培养人的良好习惯。”“英语课程标准”中明确指出要使学生树立自信心,养成良好的学习习惯和形成有效的学习策略,发展自主学
  • 数学专业大一想考研计算机专业该怎么准备

  • 这是不少数学大类专业同学比较关心的问题,我结合当前计算机专业考研的要求来说说个人建议。首先,当前很多学校的计算机专业,尤其是传统强校的计算机专业,并不允许跨保了,所以对于
  • 吕梁山上建起云端产业

  •   计算速度4550万亿次每秒、累计服务用户1000余家、3亿核时输出机时……这是一份来自山西省超级计算中心“天河二号”超级计算机吕梁机组的“成绩单

热门文章

  • OPPO k1的低价高配真实么?网友:不看不知道

  • 近日OPPO一款新机OPPO k1,摒弃了高价低配,就连自家老大哥r17都要怼一下。更是放弃了请代言人,以往的OPPO手机还没出来,各路流量小生,花样美男的代言就先来了。还有线下销售人员的
  • 一招教你手机无限制成为一台新设备

  • 大家平时用手机去注册app,肯定会遇到检测设备异常,交易关闭,等问题 这个都是手机已经不止1-2次注册过此app,不断更换手机仅是一个暂时的方法,却不是长久之计,手机总归会用完
  • 从零开始如何开网店

  • 随着互联网的高速发展,人们的生活发生了翻天覆地的变化,生活节奏越来越快,网购已经成为家家户户生活中离不开的一种购物方式了。网购的发展使得越来越多的人想要涉足电商事业,那

最新文章

  • 春运,来了!

  • 春运,已经成为过年的标志车票承载着对家人的思念车轮拉近了与家乡的距离今天备受关注的2023年春运正式拉开帷幕1月7日到2月15日为期40天的春
  • “贯彻党的二十大精神 民政爱民送温暖”

  • 春节将至,为更好关心困难群众的生产生活问题,帮助困难家庭度过一个安乐祥和的新春佳节,1月4日,石嘴山市举行“学习贯彻二十大 民政爱民送温暖”物资发放仪式。此次活动共筹措资
  • 春运送福 温暖回家路

  • 2023年春运于1月7日拉开大幕,火车站、机场及各大客运站人头攒动。在拉萨火车站候车室内,39岁的赵政西说,他在拉萨做生意8年了,准备乘坐火车回河南老家过年。“今年自己没有挣到