当前课程知识点:计算思维与人工智能基础 > 第三部分:python基础 > 第九章:TensorFlow基础 > 9.3TensorFlow的数据应用
之后
AlexNet模型
VGG模型
GoogleLeNet
ResNet模型相继被提出
那么在图像
音频等领域呢
都取得了很好的什么效果
那么从时间点
从2012年AlexNet提出
然后14年是VGG
15年是ResNet
那么16年是AlphaGo
2018年是BERT
到2019年的Tensorflow的发布
是这样的一个过程
那么深度学习的特点
主要就是一个数据量大
像我们最早使用的MNIST
是有70000张图片
那么后面的ImageNet数据集
就是有14000000万张图片
网络的规模呢
也就是网络的层数也越来越多
从8层到我们的121层
随着这个网络层数的增加呢
那么网络的计算量
按指数的积来增长的
我们常用的深度学习框架
我们给大家介绍一下
那一个就是我们的
TrensorFlow
另外呢
有那个Pytorch
Pytorch是
Pytorch是
facebook创建的
基于lua编写的torch库的
python实现的深度学习
另外一个就是
PaddlePaddle
是我们国内百度自主研发的一个
开源的深度学习框架
那么这个都是我们常用的这三种
TrensorFlow
TrensorFlow
Pytorch
和PaddlePaddle
他的使用的用户数以及他的关注度呢?
那也是有一些差异的
那么TrensorFlow
和我们的PyTorch
Paddle
他都是有一个数量级的一个差别
最早的一些深度学习框架
我们给大家介绍
首先的最早的深度框架呢
Theano
他是一个最早的深度学习框架
它是由这个
Yoshua Bengio
和恩蒙特利大学的研究小组
于2007年创建的
但是他开发的这个效率比较低
模型编译时间比较长
目前已经停止维护了
另外一个就是
普遍使用的
Scikit-learm
Scikit-learm
他是一部完整的
面向机器学习的一个框架
里面有我们常用的机器算法
模型都在里面
但是呢他不是针对神经网络而设计
所以它也不支持GPU的一个加速啊
另外一个就是Caffe
Caffe是华人贾扬清和
伯克利人工智能实验室研发的
主要是面向卷积神经网络。
它是第一个面向深度学习的框架
那么Keras的出现呢
降低了深度学习的门槛
那他们在网络的构建上的更灵活
那么效率会更高一些
下面我们看一下
TrensorFlow
2.0的改进
也就是2.0和1.0
还有什么样的一个主要的区别呢
首先我们看一下
TrensorFlow
1.0的基本的概念
图就是表示我们计算任务的啊
也就是我们要做的一些操作
那么用有向图来去描述出来
我们绘画就是一个
图必须要放在绘画里面
才能进行什么启动Session
才能进行什么启动Session
Tensor就是表示的数据
我们数据的不同的
它翻译过来是个张量
可以是一维的二维的更多维
变量其实我们比较熟悉的
那么就是记录一些数据和状态
那就是我们计算的一个容器
另外的feed和这个fetch
就是为任意的操作
复制或者从中获取数据
那么在1.0里面有这样的概念
我们这个张量
那我们在
1.0 2.0概念是一样的
1.0 2.0概念是一样的
那么它就是一阶张量
可以理解为成一个向量
那么一个数据
他就是一个值组成一个标量
也是
那么张量可以是标量可以是向量
比如二维那他就变成矩阵
三维就是变成一个立体
那么那四维的话就可以有这些什么啊
立方体组成了一个向量
那么五维就是立方体组成一个平面
那么六维值立方体
再组成另一个立方体依此类推
大概这样去理解张量
那么张量就可以在不同维度上的
一个数据的一个描述
那么在这里面的话是
另外一个我们可以看到的图
TrensorFlow是一个有向图
那么任何的计算任务的
抽象的一个描述
那我们也把它叫做数据流图
TrensorFlow1中
首先定义好数据流图
然后再创建会话
就是刚才我们说的
Session来执行者这个图
TrensorFlow2呢
他是采用了动态图的机制
所以不用预先定义好这个静态图
比如说我们有一个什么呀计算任务
是这样子的
我们可以看到是输入输入
然后那两个数值进行什么样积和
然后再把这个结果进行加
那么这样的一个表达式
那么这个表达式
可以用这个图来去描述
那么在这个1.0里面
就会有一个会话
那么就是tf.Session
Session里面
Session里面
有一个方法run
把我们这个流图
放到这个run里面呢
我们才能有一个结果
2.0采用这个动态
这个图的技术就去掉它了
而是把这个
就是把这个
tf.Session被放到
这个兼容模块里
tensorflow.
compat.v1中
那么这个模块有完整的
TensorFlow.x的API
也就说我们TrensorFlow
1.0的代码可以在2.0里面去执行
怎么样呢
我们需要把这一句加上
加上以后他在里面就有1.0API
他就可以执行
是这样一个过程
那我们可以看到
这也是一个Session图
Tensor
变量这是一个操作
那么这就是一个有向图
那么
TrensorFlow2.0里面
它把
Keras纳入我们
TrensorFlow
里面的库里面
它作为这个构建和训练模型的
一个中央的API
那么让他提供一些构建
神经网络的一些API
比如说他的顺序列化
函数化、子类化
他都可以进行他的立即执行
取消了session.run
所以建议使用函数
而不是使用会话
而不是使用会话
那么也取消了一些变量。
比如说
Variable scope
要用到的
tf.global_
variables_
variables_
initializer和
tf.get_glbal-
step之类的
直接辅助方法的全局变量
通通都tf.Varible
对变量进行追踪
还清除了一些API
我们来看一个例子
那么这个就是
TrensorFlow
1.0的时候
我们要给付一个A B把两个常量
然后呢
我们c我们定义A加B
其实这就定义了个最简单的
其实这就定义了个最简单的
一个静态的一个数据流图
那我们通过在
引入Session
然后把我们定义c
放到sess.run
方法来去执行它
方法来去执行它
这就是TrensorFlow
1.0的代码的思路和过程
那么2.0的就简单一些
那么导入2.0以后呢
我们直接用我们第一个常量
我们直接用我们第一个常量
第一个常量
第一个流图
我们直接就可以支持一个动态的流
所以我们直接可以是吧执行输出
是这样子的
2.0呢
那我们可以引入什么呀
引入我们的keras
引入到我们
TrensorFlow库里面
所以我们就可以
创建一个tensor
然后呢我们可以进行对他建立
序列化的一个神经网络模型
那么第一层
那么这里面有两个神经元
那么这里面有两个神经元
那么这是激活函数
那么这是激活函数
来去构建我们的模型
这是这样子的
在2.0的框架里面
我们可以有三块
我们可以有三块
一块就是训练
一块模型的存储
还有一块部署
那么大的来说就是训练和部署
训练就可以通过训练集
那么训练集
利用我们的Keras
一些给定的模型的一些函数
那么来去构建我们的模型
可以在我们训练的时候在
CPU GPU TPU
训练的时候流图呢
其实可以通过
Tensorboard来进行展示
Tensorboard来进行展示
展示我们可以存储模型
放在这个模型库里
那么部署的时候
即可以部署到Serving
也可以部署到我们边缘计算端
也就是我们的Android
IOS
IOS
Raspberry Pi这样的方式
Raspberry Pi这样的方式
也可以部署到浏览器端
通过TensorFlow.JS
好的
关于TrensorFlow
1.0 2.0的区别
我们就给大家介绍到这里
-章测试
-章测试
-第一章:python简介
--章测试
-第二章:编码规范
--2.2常量和变量
--章测试
-第三章:数据类型
--章测试
-第四章:基本运算
--4.2比较运算符
--4.3逻辑运算符
--4.4位运算符
--章测试
-第五章:程序控制结构
--5.1顺序结构
--5.2条件结构
--5.3循环结构
--5.4跳转结构
--5.5异常处理
--章测试
-第六章:函数、模块与面向对象
--6.2面向对象
--6.4模块与包
--章测试
-第七章:文件操作
--7.2文件的写入
--章测试
-第八章:python生态库
--章测试
-第九章:TensorFlow基础
--章测试
-第十章:实例分析与实践
--章测试
-第十一章:人工智能在自然语言中的应用
--章测试