一 tf.Session() vs Eager execution
tf1 : tf2:
a=tf.constant(1) a=tf.constant(1)
b=tf.constant(2) b=tf.constant(2)
c=tf.add(a,b) c=tf.add(a,b)
with tf.Session() as sess: print(c)
print(sess.run(c)) 如果要取得tensor中的值:c.numpy()
sess.run() Eager execution
全局化 不再全局化
session functions
api混乱 api清晰,更好的与python集成
二.变化,重点推出tf.keras,tf.data高层api
1.用eager模式搭建原型
2.用tf.data处理数据
3.tf.feature_column提取特征
4.tf.keras搭建模型
5.tf.saved_model打包模型
三.Eager execution 与Session
Eager execution:命令式编程,不需要编译,可以直接运行,方便,不需要编写完整的静态图,调试不需要打开会话
Session静态图模式:声明式编程,需要编译,通过graph构建的模型在分布式训练,性能优化以及线上部署有优势
Eager execution可通过@tf.function 实现Graph execution,将模型转化为高性能,容易部署的graph execution
三.API层次结构
分三个层次,低阶api,中捷api,高价api
1.python实现的操作符,主要包括张量操作算子,计算图,自动微分
2.python实现的模型组件,对低阶进行封装,主要包括模型层,损失函数,优化器,数据管道,特征列等等
3.python实现的模型成品,一般按照OOP模式封装的高级API,主要是为tf.keras.model提供的API
四.低层api
tf.*
tf.dtypes() 数据类型转换 tf.math数学标量计算 tf.initializers() 初始化操作
tf.random 随机数生成 tf.linalg 线性代数运算 tf.strings 字符串处理
tf.ragged 张量操作,如切片 tf.audio 声音处理 tf,image 图像处理
tf.io 文件处理
五.中层API
tf.data 数据管道 tf.feature_column 特征列 tf.nn 激活函数,卷积,反卷积
tf.keras,layers 模型层,cnn,rnn tf.keras,loss 损失函数 tf.keras.metrics 评估函数
tf.keras,optimizers 优化器 tf,keras,callbacks 回调函数 tf.summary 模型可视化
六.高层API
tf,keras,models
建模方式有三种:
a.Sequential 方法
b.函数式API方法
c.model 字类化自定义模型