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

本文全面介绍了Keras中各种层的功能与用法,包括基础层、卷积层、池化层、循环层及嵌入层,详细解析了每种层的参数设置与应用场景,是Keras用户不可多得的参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对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对上层输出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 全0l1
eluOnes 全1l2
softplusConstant 常数l1_l2
softsignRandomNormal 正态分布 
reluRandomUniform 平均分布 
tanhTruncatedNormal 无尾正态 
sigmoidOrthogonal 正交矩阵 
hard_sigmoidIdentity 单位矩阵 
linearglorot_normal 

 

2 卷积层

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

 参数说明:

名称说明
filters卷积核的数目(即输出的维度)
kernel_size卷积核的宽度和长度。如为单个整数,表示在各个空间维度的相同长度
strides为卷积的步长。如为单个整数,则表示在各个空间维度的相同步长
padding补0策略,为“valid”, “same”
activation 
data_formatchannels_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缩小一半
paddingvalid为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嵌入层将输入中的整数转换为向量,导致原维度+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层的输出维度无法自动推断。

 

转载于:https://www.cnblogs.com/yh-blog/p/10530772.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值