Keras中Conv1D与Conv2D层的权重和偏置形状如何计算
Keras卷积层权重与偏置形状计算方法
默认假设卷积层use_bias参数为默认值True(开启偏置),输入特征的通道数记为in_channels:
1. Conv1D层(对应代码x1 = Conv1D(256, 3, padding='same', activation="relu")(x1))
- 权重形状:
(卷积核长度, 输入通道数, 输出通道数)=(3, in_channels, 256)
一维卷积的卷积核长度指定为3,每个输出通道对应一个独立的卷积核,每个卷积核会覆盖全部输入通道的信息。 - 偏置形状:
(输出通道数,)=(256,)
每个输出通道对应一个独立的偏置值,和输出通道数一一对应。
举个实际例子:如果输入x1的形状为(None, 100, 64)(样本数不固定、序列长度100、输入通道数64),那么该层权重形状为(3, 64, 256),偏置形状为(256,)。
2. Conv2D层(对应代码x2 = Conv2D(32, (3, 3), padding="same", activation="relu")(x2))
- 权重形状:
(卷积核高度, 卷积核宽度, 输入通道数, 输出通道数)=(3, 3, in_channels, 32)
二维卷积的卷积核尺寸指定为3×3,32个输出通道对应32个独立的3×3卷积核,每个卷积核同样覆盖全部输入通道的信息。 - 偏置形状:
(输出通道数,)=(32,)
逻辑和一维卷积一致,每个输出通道对应一个偏置值。
举个实际例子:如果输入x2的形状为(None, 256, 256, 3)(样本数不固定、图片尺寸256×256、3通道RGB输入),那么该层权重形状为(3, 3, 3, 32),偏置形状为(32,)。
补充说明:
padding参数仅影响输出特征图的尺寸,不会改变权重和偏置的形状,所以本题中padding='same'不参与权重偏置的计算逻辑。
内容的提问来源于stack exchange,提问作者Vishak Raj
相关产品推荐
相关产品推荐

