第九章:深度学习平台及框架

➢ Part One.深度学习平台概览

我们每一位学习深度学习的人员,都应该以某一个平台为主,去开发、去熟悉,这样可以提高我们的效率。

一、深度学习平台框架对照

Caffe在卷积网络里面应用是最快的,但是问题是循环神经网络支持性很差,现在大家用的很少。

TensorFlow是目前世界上影响最广的深度学习平台,2015年由Google推出,之后大火。

Torch现在实际上使用的并不多,主要是使用Pytorch ,Pytorch 可以认为是Torch的Python版本。

Pytorch在这2年,得到了非常广泛的应用,对初学者来说,大家上手很容易,门槛很低,大家学习速度会很快。

图片中剩下的都是几乎不怎么使用了的框架

第九章:深度学习平台及框架

❑ 2018年GitHub统计,TensorFlow最火,Keras次之,Pytorch第三。Keras严格意义上来说,不是一个深度学习的框架,他是一个用Python写的一个API接口,它下面还是要以TensorFlow等框架作为后端来为支撑。Keras的接口简单,所以实现想法的时候会比较容易,因此较火热。推荐大家从前3位中选择一个适合自己的深度学习平台。

第九章:深度学习平台及框架

➢ Part Two.TensorFlow

➢一、TensorFlow的起源

❑ 2015116日,Google公司宣布推出全新的机器学习开源工具TensorFlow

❑ TensorFlow最初由Google Brain团队开发,基于Google发的深度学习基础架构DistBelief构建起来的

❑ 官网:https://tensorflow.google.cn/

❑ 相关的源代码在Github一直在更新https://github.com/tensorflow/tensorflow

❑ TensorFlow:一个采用计算图的形式表述数值计算的编程框架,关于计算图的知识我们在RNN中讲过。这里的计算图和之前的略有不同。

张量(Tensor):计算图的基本数据结构,可以理解为多维数据

流(Flow):架构上流动的数据就是张量,张量之间通过计算互相转化的过程成为“流”

➢二、TensorFlow中的张量

❑ 张量是一个物理量,对高维 (维数 ≥ 2) 的物理量进行 “纲分析” 的一种工具

❑ 简单的可以理解为:

一维数组称为矢量

二维数组为二阶张量

三维数组为三阶张量

– …

➢三、TensorFlow中的计算图

TensorFlow中的计算图和我们之前在博客:https://blog.****.net/weixin_40645361/article/details/105025876 中介绍的计算图是略有差异的。TensorFlow中的计算图中,节点表示施加的操作;而我们之前在博客中介绍的计算图中,边表示操作

❑ 计算图

– 用“节点”(Nodes)和“边”(Edges)的有向图来描述数学计算的图

❑ 节点

– 表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent

variable)的终点

❑ 边

表示“节点”之间的输入/输出关系。“边”可以运输“大小可动态调整”的“张量”

❑ 节点类型

– Operation:有一个或者两个输入节点的节点,执行某个操作

– Constant:没有输入节点的节点,执行过程中节点的值不变

– Variable:没有输入节点的节点,执行过程中节点中的值会变

– Placeholder:没有输入节点的节点,执行过程中等待外部输入

❑ 计算图示例