深度学习框架 TensorFlow
阅读数:63 评论数:0
跳转到新版页面分类
AI
正文
一、概述
现在流行的深度学习框架有很:Caffe、Pytorch、TensorFlow、MXNet、PaddlePaddle。
Caffe | 网络结构都是以配置文件的形式定义,学习文档较少 |
Pytorch | python优先的深度学习框架 |
TensorFlow | 底层采用C++语言开发设计 |
MXNet | 学习社区较小 |
PaddlePaddle | 文档较少 |
二、TensorFlow
TensorFlow是Google开源的一款端到端的机器学习平台,Tensor(张量)和Flow(流)代表着其运行原理是张量基于数据流图从图的一端流动到另一端。
1、Tensor 张量
张量是TensorFlow里面核心的数据单位,它本质是一个任意维度的数组,用来表示诸如标量、向量、多维矩阵等不同的属性,所有的张量都是标量以及向量的泛化。
算法的本质都是各种基本操作的组合。
张量由阶、数据类型以及形状三个参数构成:
(1)阶
阶代表张量具有的维度个数。
(2)形状
形状是一个整数元组,表示每个维度的长度。
(3)数据类型
DT-Float | 32位浮点数 |
DT-Double | 64位浮点数 |
DT-Int64 | 64位整数 |
DT-Int32 | 32位整数 |
DT-Int8 | 8位整数 |
DT-UInt8 | 8位无符号位整数 |
DT-String | 字符串 |
DT-Bool | 布尔类型 |
2、运算单元 op/operation
运算单元表示某种抽象计算,使用输入的张量执行特定的运算,运算单元在执行完特定的计算操作后会返回0或多个张量用来供其它的op使用。
常规数据运算 | Add、Sub、Mul、Div、Less、Equal、Log |
控制流操作 | Merge、Leave、Enter、Switch、NextIteration |
矩阵操作 | MatrixInverse、MatMul |
有状态的操作 | Assign、Varaible |
数组操作 | Concat、Split、Slice、Shape、Rank |
神经网络相关操作 | MaxPool、Softmax、Relu |
队列和同步操作 | Enqueue、Dequeue、MutexRelease |
(1)神经网络运算单元
操作主要包括激活函数、卷积函数、池化函数、分类函数。
激活函数用于将非线性因素引入神经网络中,可以帮助神经网络在训练过程中能够逼近任何非线性函数。
卷积函数常用于提出特征。
3、计算图Graph
计算图(又称数据流图)被定义为有向无环图,它是TensorFlow运行时系统内部创建的图形。运算符是图中的节点,张量是计算图中边上流动的数据。
开发人员可以通过编程定义任何指定的数学模型,然后TensorFlow框架会自动将该模型转换为数据流图。