本门课程的基础章节,详细介绍了如何使用tf.keras进行模型的搭建以及大量的深度学习的理论知识。理论知识包括分类问题、回归问题、损失函数、神经网络、激活函数、dropout、批归一化、深度神经网络、Wide&Deep模型、密集特征、稀疏特征、超参数搜索等及其在图像分类、房价预测上的实现。
课程代码的tensorflow版本:
大部分代码是tensorflow2.0的;
课程以tf.keras API为主,因为keras在1.3以后的版本就引入进来了,因而部分代码可以在tf1.3+运行;
另外有少量tensorflow1.*版本代码,这些版本的代码并不能在2.0上运行,因为很多API都已经过时了。
理论部分:
tensorflow-keras简介;
分类问题、回归问题、损失函数;
神经网络、激活函数、批归一化、Dropout;
wide&模型;
超参数搜索。
实战部分:
keras搭建分类模型;
keras回调函数;
keras搭建回归模型;
keras搭建深度神经网络;
keras实现wide&deep模型;
keras与scikit-learn实现超参数搜索。
tensorflow-keras简介
keras是什么:
基于python的高级神经网络API,它是一套API,而不是一个完整的库;
Francois Chollet(现在在Google,tf.keras由他来实现)于2014-2015年编写Keras;
keras只是神经网络的API,它不是一个完整的库,它如何去运行呢?他要设置后端,现在tensorflow支持三个后端,有了后端之后,keras才能去运行以Tensorflow、CNTK或者Theano为后端运行,keras必须有后端才可以运行,keras的后端是可以切换的,对于用户来说他只是使用了keras的API,他并不会用到后端里边的东西他不依赖于后端,对于用户来说切换后端对于他使用keras没有任何的影响,自从tensorflow支持了称为keras后端之后,现在大家一般使用以tensorflow为后端的keras;
由于keras它的抽象化做的比较好,所以极方便于快速实验,帮助用户以最少的时间验证自己的想法。
tensorflow-keras是什么:
是tensorflow内部对keras API规范的又给实现;
他和以tensorflow为后端的keras其实是两码事,因为这一套keras API规范的是直接是现在tensorflow上的,就是这套API和tensorflow结合更加的紧密;
实现在tf.keras空间下,所以说tensorflow keras和tf.keras是一个类似的概念。
tf-keras和keras联系:
基于同一套API,都是keras定义的那一套API,因为是同一套API,所以keras程序可以通过改导入方式轻松转为tf.keras程序,反之对于tf.keras的代码要想改成keras的代码可能不一定能够成立,因为tf.keras有一些其他的特性的东西,因为tf.keras种的keras和tensorflow结合的更加紧密,如果之前用过keras的话,可以很轻松的转到tensorflow-keras上来;
他们的规范是一样的,他们的模型导出的规范也是一样的,相同的JSON和HDF5模型序列化格式和语义。
tf-keras和keras区别:(就是tf-keras他和tensorflow的联系更加的紧密,具体紧密在以下方面)
tf-keras全面支持eager mode,只是用keras.Sequential和keras.Model时没影响,自定义Model内部运算逻辑的时候会有影响(Tf底层API可以使用keras的model.fit等抽象,更适用于研究人员尝试自己的想法);
Tf.keras支持基于tf.data做为数据的输入;
tf.keras支持TPU训练;
tf.keras支持tf.distribution中的分布式策略;
其他特性(tf.keras可以与tensorflow中的estimator预估器相集成,tf.keras可以保存为SavedModel,保存为tensorflow中的SavedModel之后呢就可以利用tensorflow的那种跨平台的优势可以把这个model部署到各种各样的平台上去,这是tf.keras的一些优势)。
是使用keras还是使用tf.keras,如何选择?
如果想用到tf.keras中的任何一个特性,那么选用tf.keras;
如果后端互换性很重要,那么选用keras;
如果都不重要,那随便。
分类与回归问题
本节课要解决的两个问题,分类问题与回归问题。
分类问题预测的是类别,模型输出是概率分布,三分类问题输出例子:[0.2, 0.7, 0.1]。
回归问题预测的是值,模型的输出是一个实数值。
为什么需要目标函数?
参数是逐步调整的;
目标可以帮助衡量模型的好坏。
分类问题的目标函数:
需要衡量目标类别与当前预测的差距(三分类问题输出例子[0.2, 0.7, 0.1],三分类真实类别2->one_hot->[0, 1, 1]);
one-hot编码,把正整数变为向量表达(生成一个长度小于正整数的向量,只有正整数的位置处为1,其余位置都为0);
平法差损失1/nΣ1/2(y-Model(x))2;
交叉熵损失1/nΣyln(Model(x))。
回归问题的目标函数(比分类问题简单,因为输出是一个值而非分布):
预测值与真实值的差距;
平方差损失;
绝对值损失。
有了目标函数之后,怎么求解模型?
模型的训练就是调整参数,使得目标函数逐渐变小的过程,这就是目标函数的一个作用。
实战:
keras搭建分类模型、keras回调函数、keras搭建回归模型。
使用keras搭建分类模型
数据读取与展示:
模型构建:
模型数据归一化:
实战回调函数
tensorflow2.0第2章 Tensorflow keras实战
原文:https://www.cnblogs.com/wisir/p/12132134.html