TensorFlow 2.0简介
目录
- 知识树
- 1、TensorFlow 2.x vs 1.x
- 1.1 TensorFlow发展历程
- 1.2 为什么要学习TensorFlow
- 1.3 TensorFlow 2.x vs 1.x
- 1.4 TensorFlow 2.0 变化
- 2、Eager Execution
- 2.1 Eager Execution优缺点
- 3、TensorFlow API
- 3.1 低层TensorFlow API
- 3.2 中层TensorFlow API
- 3.3 高层TensorFlow API
- 3.4 TensorFlow API 总结
- 4、资料来源
知识树
1、TensorFlow 2.x vs 1.x
1.1 TensorFlow发展历程
1.2 为什么要学习TensorFlow
- 开源生态成熟;
- 完整的部署流程;
- 产品化方案;
TensorFlow 1.X有哪些问题?
- 文档和接口混乱;
- 默认占用所有GPU的所有内存;
- 使用繁琐;
- 调试困难等;
1.3 TensorFlow 2.x vs 1.x
1.4 TensorFlow 2.0 变化
TensorFlow 2.0 推荐使用tf.keras、tf.data等高级库;
- 用Eager模式搭建原型;
- 用tf.data处理数据;
- 用tf.feature_column提取特征;
- 用tf.keras搭建模型;
- 用tf.saved_model打包模型;
2、Eager Execution
Eager模式就是类似于Python这样的命令式编程,写好程序之后,不需要编译,就可以直接运行,而且非常直观;
而之前的Session静态图模式则类似于C/C++的声明式编程,写好程序之后要先编译,然后才能运行;
Eager模式是在TF1.4版本之后引入的,在TF2.x的版本会把eager模式变为默认执行模式;
好处:
- 不需要编写完整的静态图;
- 调试不需要打开会话(Session);
- Python上调用它进行计算可以直接得出结果;
- TensorFlow 2.x的入门会简单得多;
2.1 Eager Execution优缺点
优点:
- eager模式提供了更直观的接口,可以像写Python代码一样写模型;
- 更方便调试;
- 自然的控制流程,像编写Python程序一样;
缺点:
- 通过graph构造的模型在分布式训练、性能优化以及线上部署上有优势;
推荐使用@tf.function(而非1.x中的tf.Session)实现Graph Execution,从而将模型转换为易于部署且高性能的TensorFlow图模型;
举个例子:
import tensorflow as tf
@tf.function
def simple_nn_layer(x, y):return tf.nn.relu(tf.matmul(x, y))x = tf.random.uniform((3,3))
y = tf.random.uniform((3,3))simple_nn_layer(x,y)
3、TensorFlow API
TensorFlow API一共可以分为三个层次,即低阶API、中阶API、高阶API:
- 第一层为Python实现的操作符,主要包括各种张量操作算子、计算图、自动微分;
- 第二层为Python实现的模型组件,对低级API进行了函数封装,主要包括各种模型层,损失函数,优化器,数据管道,特征列等等;
- 第三层为Python实现的模型成品,一般为按照OOP方式封装的高级API,主要为tf.keras.models提供的模型的类接口;
3.1 低层TensorFlow API
举个例子,看看各种API的具体使用:
import tensorflow as tfa = tf.constant([[1,2],[3,4]])
b = tf.constant([[5,6],[7,8]])# 标量计算
a+b tf.math.add(a,b)
a-b tf.math.subtract(a,b)
a*b tf.math.multiply(a,b)
a/b tf.math.divide(a,b)# 向量计算
a = tf.range(1,100)
tf.print(tf.reduce_sum(a))
tf.print(tf.reduce_mean(a))
tf.print(tf.reduce_max(a))
tf.print(tf.reduce_min(a))
tf.print(tf.reduce_prod(a))
3.2 中层TensorFlow API
举个例子,如下所示:
a = tf.random.uniform(shape=(10,5), minval=0, maxval=10) # 矩阵
tf.nn.softmax(a) # softmax操作a = tf.random.uniform(shape(10,5), minval=-0.5, maxval=-0.5) # 矩阵
b = tf.keras.layers.Dense(10)(a) # 全连接层
b = tf.nn.softmax(b) # softmax操作a = tf.random.uniform(shape=(10,100,50), minval=-0.5, maxval=-0.5) # 矩阵
b = tf.keras.LSTM(100)(a) # LSTM层
b = tf.keras.layers.Dense(b) # 全连接层
b = tf.nn.softmax(b) # softmax操作
3.3 高层TensorFlow API
tensorflow.keras.models
建模方式有三种:
- Sequential办法;
- 函数式API方法;
- Model子类化自定义模型
如何构建模型将会在后面详细介绍,下面我们举个例子:
import tensorflow as tf# 随机初始化输入X和输出y
X = tf.random.uniform(shape=(10,100,50),minval=-0.5,maxval=0.5)
y = tf.random.categorical(tf.random.uniform(shape=(10.3),minval=-0.5,maxval=-0.5),2)# 构造模型
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.LSTM(100,input_shape=(100,50)))
model.add(tf.keras.layers.Dense(10))
model.add(tf.keras.layers.Dense(2,activation='softmax'))model.compilc(optimizer='adam',loss='categorical crossentropy',metrics=['accuracy'])model.summary()
model.fit(X,y)
3.4 TensorFlow API 总结
上图中的tf.data用于构造数据,Keras用于构造模型的层,接着用CPU、GPU、TPU进行加速训练,对训练结果使用TensorBoard进行可视化,可以对模型进行保存(Saved model),TensorFlow HUb的作用是模型复用,Deployment的作用是模型部署。
4、资料来源
深度之眼课程——《TensorFlow》
TensorFlow 2.0简介相关推荐
- 简单粗暴上手TensorFlow 2.0,北大学霸力作,必须人手一册!
(图片付费下载自视觉中国) 整理 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读] TensorFlow 2.0 于近期正式发布后,立即受到学术界与科研界的广泛关注与好评.此前 ...
- 资源|2019 年 11 月最新《TensorFlow 2.0 深度学习算法实战》中文版教材免费开源(附随书代码+pdf)...
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 2019 年 10 月,谷歌正式宣布,开源机器学习库 TensorFlow 2.0 现在 ...
- DL框架之TensorFlow:深度学习框架TensorFlow Core(低级别TensorFlow API)的简介、安装、使用方法之详细攻略
DL框架之TensorFlow:TensorFlow Core(低级别TensorFlow API)的简介.安装.使用方法之详细DL框架之TensorFlow:深度学习框架TensorFlow Cor ...
- TensorFlow:深度学习框架TensorFlow TensorFlow_GPU的简介、安装、测试之详细攻略
TensorFlow:深度学习框架TensorFlow & TensorFlow_GPU的简介.安装.测试之详细攻略 目录 TensorFlow的简介 TensorFlow的安装 1.tens ...
- Github标星8.3k+,Tensorflow 2.0的代码实现及教学材料(“龙书”)公布下载了!
本文推荐一个热门的Tensorflow 2.0的学习项目,提供pdf和代码,github上标星8.3k+ Github地址: https://github.com/dragen1860/Deep-Le ...
- 官方文档太辣鸡?TensorFlow 2.0开源工具书,30天「无痛」上手
本文转载自机器之心. 项目作者:lyhue1991 「官方文档排布凌乱.搜索难用.API 丑陋不堪--」这是很多人对 TensorFlow 官方文档的吐槽.但吐槽归吐槽,到了工业界,你是无论如何也绕不 ...
- TensorFlow 2.0 快速入门指南 | iBooker·ApacheCN
原文:TensorFlow 2.0 Quick Start Guide 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 不要担心自己的形象,只关心如何实现目标.--<原则>,生活 ...
- 如何简单粗暴地上手 TensorFlow 2.0?
整理 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读] TensorFlow 2.0 于近期正式发布后,立即受到学术界与科研界的广泛关注与好评.此前,我们曾特邀专家回顾了 Te ...
- 简单粗暴上手TensorFlow 2.0,北大学霸力作,必须人手一册
[导读] TensorFlow 2.0 于近期正式发布后,立即受到学术界与科研界的广泛关注与好评.此前,AI 科技大本营曾特邀专家回顾了 TensorFlow 2.0 从初版到最新版本的发展史.今天, ...
最新文章
- Second day in Jumei
- [转]C++基础:C++的结构struct
- Oracle 数据类型及存储方式
- 消息中间件 --- Kafka快速入门
- 24岁的程序员,似乎已经看到了30岁后的自己
- Saturn分布式调度之系统架构简介
- VMware 安装LINUX系统(一)
- 【笔记】面向对象设计模式
- 微服务统一认证与授权的 Go 语言实现
- 【】每日360题,2019.11.02日08点财会类考试习题答案
- 无损压缩算法专题——无损压缩算法介绍
- python实验总结与分析_【利用python进行数据分析】利用初中物理实验 培养学生发散思维...
- 机器学习(11)——时间序列分析
- PBC【Packaged Business Capabilities】的理解
- OpenGL学习笔记——处理键盘输入
- 杨辉三角形实现过程详解-C语言基础
- 收集的SQL Server性能相关资料
- ansible 的第一次亲密接触
- 肠胃不好吃什么调理?
- 干货分享:十年大厂资深程序员的开发经验总结