Dense层

Dense层是Keras中构建神经网络的基本组件,用于添加全连接层。其主要参数包括输出神经元数量、激活函数、是否使用偏置等。输入_dim_指定输入数据的维度,例如input_dim=2表示输入是(*, 2)数组。当作为输入层时,Dense层不处理输入数据,直接传递给下一层。输出公式为Out=Activation(Input·Kernel)+Bias,参数计算为(上一层神经元数量) x (本层神经元数量) + (本层神经元数量)。例如,model.add(Dense(10, input_dim=5))创建了一个含有60个参数的层。

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

1 常见参数

model.add(Dense(units, #输出的大小(神经元个数)
                activation=None, #激活函数
                use_bias=True, #是否添加偏置
                kernel_initializer='glorot_uniform', #权重矩阵初始化
                bias_initializer='zeros', #偏置初始化
                kernel_regularizer=None, #权重矩阵的正则函数
                bias_regularizer=None,) #偏置的的正则函数
          )

注意,当Dence层作为输入层时需要添加一个参数 input_dim。

input_dim:代表输入数据的维度 。

2 作用

Dense层可在model中添加神经网络层,model.add(Dense())。

下图(从网上找的图)的黑圆圈为神经元,输入层的神经元会将输入数据直接传递给下一层,在下一层的神经元中对输入值进行处理。因此用Dense层作为输入层时,同时增加了输入层和隐藏层。

 由上图可以,在输入层没有对输入数据进行处理,输入层神经元节点会将输入数据直接传递给下一层(隐层或输出层)。

3 举例

model.add(Dense(512, activation= 'sigmoid', input_dim=2))

input_dim= 2:输入是(*,2)的数组;

units=512:输出是 (*,512) 的数组;

由于Dense层的输出公式为:Out=Activation( Input·Kernel )+Bias,该Dense层的输入Input是(*,2),输出Out是(*,512),因此Bias和Kernel是(2,512)的向量。

注意:当input的秩小于等于2时,那么它直接与权重矩阵进行点乘;当input的秩大于2时,它首先被展平flatten,再计算与权重矩阵的点乘。

4 Dense层参数计算

由于Dense层的输出公式为:Out=Activation( Input·Kernel )+Bias,因此Dense层参数计算公式为:Param = (上一层神经元数量)x (本层的神经元数量) + (本层的神经元数量)。其中,(上一层神经元数量)x (本层的神经元数量)代表的是 input\cdot kernel 的参数个数,加上的本层的神经元数量代表的是bias的参数。

from keras.layers import Dense
from keras.models import Sequential
model=Sequential()
model.add(Dense(10,input_dim=5))
model.summary()

即Param=(5+1)×10=60。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值