• Keras学习系列——神经网络层组件


    对Keras提供的对各种层的抽象进行相对全面的概括

    1 基础常用层

    名称 作用 原型参数
    Dense 实现全连接层 Dense(units,activation,use_bias=True, kernel_initializer=’glorot_uniform’, bias_initializer=’zeros’)
    Activation 对上层输出应用激活函数 Activation(activation)
    Dropout 对上层输出应用dropout以防止过拟合 Dropout(ratio)
    Flatten 对上层输出一维化 Flatten()
    Reshape 对上层输出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  

    2 卷积层

    层名 作用 原型
    Conv1D 1维卷积层 Conv1D(filters, kernel_size, strides=1, padding=’valid’)
    Conv2D 2维卷积层 Conv2D(filters, kernel_size, strides=(1, 1), padding=’valid’,dilation_rate=(1, 1))
    UpSampling1D 1维上采样,将数据重复指定的次数 UpSampling2D(size=2)
    UpSampling2D 2维上采样,将数据在2个维度上重复指定的次数 UpSampling2D(size=(2, 2))
    ZeroPadding2D 边界填充0 ZeroPadding2D(padding=(1, 1))

     参数说明:

    名称 说明
    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  

    3 池化层

    层名 作用 原型
    MaxPooling1D 对1维输入进行最大值池化过滤 MaxPooling1D(pool_size=2, strides=None, padding=’valid’)
    AveragePooling1D 对1维输入进行平均池化过滤 AveragePooling1D(pool_size=2, strides=None, padding=’valid’)
    MaxPooling2D 对2维输入进行最大值池化过滤 MaxPooling2D(pool_size=(2, 2), strides=None, padding=’valid’, data_format=None)
    AveragePooling2D 对3维输入进行平均池化过滤 AveragePooling2D(pool_size=(2, 2), strides=None, padding=’valid’, data_format=None)
    GlobalMaxPooling1D 对1维输入进行全局最大值池化过滤 GlobalMaxPooling1D()
    GlobalAveragePooling1D 对1维输入进行全局平均值池化过滤 GlobalAveragePooling1D()
    GlobalMaxPooling2D 对2维输入进行全局最大值池化过滤 GlobalMaxPooling2D()
    GlobalAveragePooling2D 对2维输入进行全局平均值池化过滤 GlobalAveragePooling2D()

    2d参数说明

     名称 说明
    pool_size 过滤器的大小,通常取(2,2)或(3,3)
    strides 过滤器的移动步长,取2使得输出shape缩小一半
    padding valid为1填充,same为0填充
    data_format 字符串,channels_first或channels_last之一

    4 循环层

    名称 作用 原型参数
    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)

    5 嵌入层

    名称 作用 原型参数
    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层的输出维度无法自动推断。

  • 相关阅读:
    我的学习思维:有关时间的管理
    Eureka的故事,专注能让你看到别人看不到的事情
    善用思维导图来整理发散的思维
    二八原理:人才招聘中的二八原理
    二八原理:员工激励中的二八原理
    二八原理:员工的三种类型
    二八原理:你必须知悉的二八原理
    Java程序员笔试、面试题目
    String StringBuffer StringBuilder
    log4j的使用详细解析
  • 原文地址:https://www.cnblogs.com/yh-blog/p/10530772.html
Copyright © 2020-2023  润新知