1 简介
在对Keras的简单使用之后,本文对Keras提供的对各种层的抽象进行相对全面的概括,以对Keras有更全面的认识。
2 基础常用层
| 名称 | 作用 | 原型参数 |
|---|
| Dense | 实现全连接层 | Dense(units,activation,use_bias=True, kernel_initializer=’glorot_uniform’, bias_initializer=’zeros’) |
| Activation | 对上层输出应用激活函数 | Activation(activation) |
| Dropout | 对上层输出应用dropout以防止过拟合 | Dropout(ratio) |
| Flatten | 对上层输出一维化 | Flatten() |
| Reahape | 对上层输出reshape | Reshape(target_shape) |
| Permute | 对输入的维度按照指定的顺序交换并重排数据 | Permute(dims) |
| RepeatVector | 将输入重复若干次后进行输出 | RepeatVector(n) |
| Lambda | 对输入施加TF/TH表达式后输出 | Lambda(function, output_shape,arguments=None) |
| Masking | 屏蔽指定的序列值 | Masking(mask_value=0.0) |
PS1:Dense()参数说明
| 名称 | 说明 |
|---|
| units | 层中单元数,也是输出维度 |
| activation | 激活函数 |
| use_bias | 是否使用偏置 |
| kernel_initializer | 权值初始化方法 |
| bias_initalizer | 偏置初始化方法 |
| kernel_regularizer | 权值规范化方法 |
| bias_regularizer | 偏置规范化方法 |
| activity_regularizer | |
| kernel_constraints | 权值约束 |
| bias_constraints | 偏置约束 |
PS2: 预置激活函数/初始化器/正则化器说明
| 激活函数 | 初始化器 | 正则化器 |
|---|
| softmax | Zeros 全0 | l1 |
| elu | Ones 全1 | l2 |
| softplus | Constant 常数 | l1_l2 |
| softsign | RandomNormal 正态分布 | |
| relu | RandomUniform 平均分布 | |
| tanh | TruncatedNormal 无尾正态 | |
| sigmoid | Orthogonal 正交矩阵 | |
| hard_sigmoid | Identity 单位矩阵 | |
| linear | glorot_normal | |
| he_normal | |
| he_uniform | |
3 巻积层
| 名称 | 作用 | 原型参数 |
|---|
| Conv1D | 一维巻积层 | Conv1D(filters, kernel_size, strides=1, padding=’valid’) |
| Conv2D | 二维巻积层 | Conv2D(filters, kernel_size, strides=(1, 1), padding=’valid’) |
参数说明:
| 名称 | 说明 |
|---|
| filters | 卷积核的数目(即输出的维度) |
| kernel_size | 卷积核的宽度和长度。如为单个整数,表示在各个空间维度的相同长度 |
| strides | 为卷积的步长。如为单个整数,则表示在各个空间维度的相同步长 |
| padding | 补0策略,为“valid”, “same” |
| activation | |
| data_format | channels_first或channels_last之一,代表图像的通道维的位置,默认为channels_last |
| use_bias | |
| kernel_initializer | |
| bias_initializer | |
| kernel_regularizer | |
| bias_regularizer | |
| activity_regularizer | |
| kernel_constraints | |
| bias_constraints | |
4 池化层
| 名称 | 作用 | 原型参数 |
|---|
| MaxPooling2D | 二维最大池化层 | MaxPooling2D(pool_size=(2, 2), strides=None, padding=’valid’, data_format=None) |
| AveragePooling2D | 平均最大池化层 | AveragePooling2D(pool_size=(2, 2), strides=None, padding=’valid’) |
5 循环层
| 名称 | 作用 | 原型参数 |
|---|
| SimpleRNN | 全连接RNN网络 | SimpleRNN(units, activation=’tanh’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’,dropout=0.0, recurrent_dropout=0.0)) |
| GRU | 门限循环单元层 | GRU(units, activation=’tanh’, recurrent_activation=’hard_sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, dropout=0.0, recurrent_dropout=0.0) |
| LSTM | 长短期记忆模型层 | LSTM(units, activation=’tanh’, recurrent_activation=’hard_sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, unit_forget_bias=True, dropout=0.0, recurrent_dropout=0.0) |
6 嵌入层
| 名称 | 作用 | 原型参数 |
|---|
| Embedding | 嵌入层将输入中的整数转换为向量,导致原维度+1 | EmbeddingEmbedding(input_dim, output_dim, embeddings_initializer=’uniform’, embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None) |
参数说明:
input_dim: 字典长度,即输入数据最大下标+1
output_dim:全连接嵌入的维度
input_length:当输入序列的长度固定时,该值为其长度。如果要在该层后接Flatten层,然后接Dense层,则必须指定该参数,否则Dense层的输出维度无法自动推断。
7 局部连接层
| 名称 | 作用 | 原型参数 |
|---|
| LocallyConnected2D | 不进行权重共享的2维层 | LocallyConnected2D(filters, kernel_size, strides=(1, 1), padding=’valid’) |
| | |
8 规范化层
| 名称 | 作用 | 原型参数 |
|---|
| BatchNormalization | 对批次数据进行规范化 | 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’) |
9 噪声层
| 名称 | 作用 | 原型参数 |
|---|
| GaussianNoise | 为数据施加0均值,标准差为stddev的加性高斯噪声 | GaussianNoise(stddev) |
| GaussianDropout | 为输入施加以1为均值,标准差为sqrt(rate/(1-rate)的乘性高斯噪声 | GaussianDropout(rate) |
10 高级激活层
| 名称 | 作用 | 原型参数 |
|---|
| LeakyReLU | ReLU激活的改进层 | LeakyReLU(alpha=0.3) |
| PReLU | 参数化的ReLU | |
| ELU | 指数参数化ReLU | |
| ThresholdedReLU | 阀值化ReLU | |
12 Wraaper层
| 名称 | 作用 | 原型参数 |
|---|
| TimeDistributed | | TimeDistributed(layer) |
| Bidirectional | 双向RNN包装器 | Bidirectional(layer, merge_mode=’concat’, weights=None) |