接上一节课中使用高级抽象的API tf.keras搭建模型,本节课则介绍了基础的API来方便大家更加灵活的定义和使用模型。课程内容包括tensorflow基础数据类型、自定义模型和损失函数、自定义求导、tf.function、图结构等以及其在图像分类、房价预测上的实现。
讲tensorflow基本的API,以及怎么结合tf.keras使用。
tf基础API引入
基础API;
基础API与keras的集成(自定义损失函数;自定义层次);
@tf.function(图结构,将python的普通代码转化为tensorflow的图结构);
自定义求导。
@tf.function:
将python函数编译成图;
易于将模型导出成为GraphDef+checkpoint或者SavedModel;
使得eager execution可以默认打开,因为如果没有@tf.function的话,虽然我们可以用eager execution写代码,但是这样的代码没办法保存中间的训练结果,相当于tensorflow的功能只有一半,没有保存的图结构只能够训练无法做预测;
1.0的代码可以通过tf.function来继续在2.0里使用(可以替代session,1.0所有的图结构都要打开一个session来训练,2.0中session完全被弃用掉了,取而代之的是tf.function。)。
API列表:
基础数据类型(tf.constant,tf.string;tf.ragged.constant,tf.SparseTensor,tf.Variable);
自定义损失函数(tf.reduce_mean);
自定义层次(keras.layers.Lambda和继承法);
tf.function(tf.fucntion,tf.autograph.to_code,get_concrete_function);
GraphDef(get_operations,get_operation_by_name;get_tensor_by_name,as_graph_def);
自动求导(tf.GradientType;Optimizier.apply_gradients)。
实战tf.constant
实战tf.strings与ragged_tensor
实战sparse_tensor与tf.Variable
实战自定义损失函数与DenseLayer回顾
使子类与lambda分别实战自定义层次
tf.function函数转换
@tf.function函数转换
函数签名与图结构