1. BatchNormalization层:该层在每个batch上将前一层的激活值重新规范化,即使得其输出数据的均值接近0,其标准差接近1
keras.layers.normalization.BatchNormalization(axis=-1, momentum=0.99, epsilon=0.001,
center=True, scale=True, beta_initializer='zeros', gamma_initializer='ones',
moving_mean_initializer='zeros', moving_variance_initializer='ones', beta_regularizer=None,
gamma_regularizer=None, beta_constraint=None, gamma_constraint=None)
· axis:整数,指定要规范化的轴,通常为特征轴。例如在进行data_format="channels_first
的2D卷积后,一般会设axis=1。
· momentum:动态均值的动量
· epsilon:大于0的小浮点数,用于防止除0错误
· center:若设为True,将会将beta作为偏置加上去,否则忽略参数beta
· scale:若设为True,则会乘以gamma,否则不使用gamma。当下一层是线性的时,可以设False,因为scaling的操作将被下一层执行。
· beta_initializer:beta权重的初始方法
· gamma_initializer:gamma的初始化方法
· moving_mean_initializer:动态均值的初始化方法
· moving_variance_initializer:动态方差的初始化方法
· beta_regularizer:可选的beta正则
· gamma_regularizer:可选的gamma正则
· beta_constraint:可选的beta约束
· gamma_constraint:可选的gamma约束
任意,当使用本层为模型首层时,指定input_shape
参数时有意义。
与输入shape相同
· Batch Normalization: Accelerating Deep Network Trainingby Reducing Internal Covariate Shift
【Tips】BN层的作用
(1)加速收敛(2)控制过拟合,可以少用或不用Dropout和正则(3)降低网络对初始化权重不敏感(4)允许使用较大的学习率
2. 融合层:Merge层提供了一系列用于融合两个层或两个张量的层对象和方法。以大写首字母开头的是Layer类,
以小写字母开头的是张量的函数。小写字母开头的张量函数在内部实际上是调用了大写字母开头的层。
(1) Add, keras.layers.merge.Add(),
该层接收一个列表的同shape张量,并返回它们的和,shape不变。
(2) Multiply, keras.layers.merge.Multiply()
该层接收一个列表的同shape张量,并返回它们的逐元素均值,shape不变
(3) Maximum, keras.layers.merge.Maximum()
该层接收一个列表的同shape张量,并返回它们的逐元素最大值,shape不变。
(4) Concatente, keras.layers.merge.Concatenate(axis=-1)
该层接收一个列表的同shape张量,并返回它们的按照给定轴相接构成的向量。
· axis:想接的轴
· **kwargs:普通的Layer关键字参数
(5) Dot, keras.layers.merge.Dot(axes,normalize=False)
计算两个tensor中样本的张量乘积。例如,如果两个张量a
和b
的shape都为(batch_size, n),则输出为形如(batch_size,1)的张量,结果张量每个batch的数据都是a[i,:]和b[i,:]的矩阵(向量)点积。
· axes:整数或整数的tuple,执行乘法的轴。
· normalize:布尔值,是否沿执行成绩的轴做L2规范化,如果设为True,那么乘积的输出是两个样本的余弦相似性。
· **kwargs:普通的Layer关键字参数
(6) add, add(inputs),Add层的函数式包装
· inputs:长度至少为2的张量列表A
· **kwargs:普通的Layer关键字参数
(7) multiply, multiply(inputs), Multiply的函数包装
###参数:
* inputs:长度至少为2的张量列表
***kwargs:普通的Layer关键字参数
###返回值
输入列表张量之逐元素积
(8) maximum, maximum(inputs) ,Maximum的函数包装
· inputs:长度至少为2的张量列表
· **kwargs:普通的Layer关键字参数
输入列表张量之逐元素均值
(9) concatenate, concatenate(inputs, axis=-1)), Concatenate的函数包装
· inputs:长度至少为2的张量列
· axis:相接的轴
· **kwargs:普通的Layer关键字参数
(10) Dot, dot(inputs, axes, normalize=False), Dot的函数包装
· inputs:长度至少为2的张量列
· axes:整数或整数的tuple,执行乘法的轴。
· normalize:布尔值,是否沿执行成绩的轴做L2规范化,如果设为True,那么乘积的输出是两个样本的余弦相似性。
· **kwargs:普通的Layer关键字参数