原文查阅“keras中文文档”
一、符号计算(拼管子)
keras底层库使用theano或TensorFlow,这两个库也成为keras后端。
符号主义的计算:
(1)定义各种变量,建立一个“计算图”,计算图规定变量之间的计算关系。
(2)编译、确定内部细节(此时计算图只是空壳子,没有任何实际数据。只有把运算输入放进去、方能在整个模型中形成数据流,形成输出值)。
二、张量(tensor)
张量:表示广泛的数据类型。
0阶张量:规模最小,即标量;
1阶张量:(向量),把一些有序的数排列起来;
2阶张量:(矩阵),继续把一组向量有序排列起来;
3阶张量:(例如3颜色通道的彩色图片的立方体),把矩阵摞起来。
.......
张量的阶数/轴:axis,
例如:[[1,2],[3,4]]:沿着第0个轴,看到[1,2]、[3,4]两个向量;
沿着第1个轴,看到[1,3]、[2,4]两个向量。
三、data_format
如何表示一组彩色图片的问题:
(1)'th'模式:即Theano模式,把100张RGB三通道的16*32的彩色图表示为(100,3,16,32),Caffe同;
(2)TensorFlow模式:表示为(100,16,32,3),即把通道维数放在了最后,“channel_last”。
四、函数式模型
(1)序贯模型(Sequential)单输入单输出。
一条路通到底,层与层之间只有相邻关系,跨层没有连接。
(2)图模型(Graph)支持多输入多输出。
层之间自由连接。
在keras1、2中,移除图模型,增加“functional model API”
五、batch
深度学习的优化算法:即梯度下降。参数更新的两种方式:
(1)遍历全部数据集,计算一次损失函数:即批梯度下降;
(2)每看一个数据就计算一下损失函数,求梯度更新参数:即随机梯度下降;
(3)折中方法:分成若干批,按照批来更新参数,mini-batch gradient decent:即小批的梯度下降。基本上目前的梯度下降都是基于mini-batch,即经常出现的batch_size。
PS:keras中的优化器SGD:stochastic gradient descent,基于mini-batch。
六、epochs
训练过程中,数据将被轮多少次。
2018/05/18