Keras中的神经网络层组件简介
来源:互联网 发布:xss攻击 java 编辑:程序博客网 时间:2024/06/05 03:55
原文:http://blog.csdn.net/zzulp/article/details/76590712
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对上层输出reshapeReshape(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: 预置激活函数/初始化器/正则化器说明
激活函数 | 初始化器 | 正则化器 | softmaxZeros 全0l1eluOnes 全1l2softplusConstant 常数l1_l2softsignRandomNormal 正态分布 reluRandomUniform 平均分布 tanhTruncatedNormal 无尾正态 sigmoidOrthogonal 正交矩阵 hard_sigmoidIdentity 单位矩阵 linearglorot_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_formatchannels_first或channels_last之一,代表图像的通道维的位置,默认为channels_lastuse_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嵌入层将输入中的整数转换为向量,导致原维度+1EmbeddingEmbedding(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 高级激活层
名称 | 作用 | 原型参数 | LeakyReLUReLU激活的改进层LeakyReLU(alpha=0.3)PReLU参数化的ReLU ELU指数参数化ReLU ThresholdedReLU阀值化ReLU 12 Wraaper层
名称 | 作用 | 原型参数 | TimeDistributed TimeDistributed(layer)Bidirectional双向RNN包装器Bidirectional(layer, merge_mode=’concat’, weights=None)