昨天基本掌握了深度学习的原理。
但是实例给的是基于Theano的。不是基于tensorflow的。因此我决定读一读师兄写的代码。
于是今天的任务是看Keras的文档。
知识点1:符号计算
符号计算是一种计算模式。
其流程就是先定义好各种变量,然后搭建好一个“计算图”,最后带进实际的数进行计算。
一种先搭好水管(Network),再流进水(Session)的思路。
知识点2:张量
张量可以看做矩阵,向量的自然推广。
0阶张量就是数。
1阶张量是向量。
2阶张量是矩阵。
2个维度而论,沿着第0个维度看到的向量就是zip(沿着第1个维度看到的向量)
知识点3:图像的格式
这点Theano和TensorFlow不同。
Theano是channel first,管道数在前面。
TensorFlow是channel last,管道数放在最后。
知识点4:函数式模型
函数式模型是组织Keras的一种叫法。
它的思路是函数式编程。输入一个或者多个张量,然后输出一个或多个张量的,统称模型。
其中有一个常见的特例,Sequential模型,就是将神经网络按顺序排列下去。不会出现跨层连接。这种模型比较好计算。
一般就是先弄一个模型,再设定其是否为Sequential模型。
知识点5:batch
这个是关于梯度下降更新参数方法的。
有两种方法。
第一种叫批梯度下降,指的是看完一遍所有的数据才算一次代价函数,从而更新参数。
第二种叫随机梯度下降,指的是看一个数据就算一次代价函数,从而更新参数。
然而这两种都没有那么好,现在效果最好的这种方法。称为小批梯度下降。
就是将数据分批次处理。然后按批次更新参数。
知识点6:epochs
训练过程中数据重复更新多少次。