一维卷积层
根据输入、卷积核、步长(stride)、填充(padding)、空洞大小(dilations)一组参数计算输出特征层大小。输入和输出是 NCL 或 NLC 格式,其中 N 是批尺寸,C 是通道数,L 是特征长度。卷积核是 MCL 格式,M 是输出特征通道数,C 是输入特征通道数,L 是卷积核长度度。如果组数(groups)大于 1,C 等于输入图像通道数除以组数的结果。详情请参考 UFLDL's : 卷积 。如果 bias_attr 不为 False,卷积计算会添加偏置项。
对每个输入 X,有等式:
Out = σ(W*X+b)
其中:
- X:输入值,NCL 或 NLC 格式的 3-D Tensor
- W:卷积核值,MCL 格式的 3-D Tensor
- *:卷积操作
- b:偏置值,1-D Tensor,形状为
[M]
- σ:激活函数
- Out:输出值,NCL 或 NLC 格式的 3-D Tensor,和
X
的形状可能不同
- in_channels (int) - 输入特征的通道数。
- out_channels (int) - 由卷积操作产生的输出的通道数。
- kernel_size (inttuple) - 卷积核大小。可以为单个整数或包含一个整数的元组或列表,表示卷积核的长度。
- stride (inttuple,可选) - 步长大小。可以为单个整数或包含一个整数的元组或列表,表示卷积的步长。默认值:1。
- padding (inttuple|str,可选) - 填充大小。可以是以下三种格式:(1)字符串,可以是"VALID"或者"SAME",表示填充算法,计算细节可参考下述
padding
= "SAME"或padding
= "VALID" 时的计算公式。(2)整数,表示在输入特征两侧各填充padding
大小的 0。(3)包含一个整数的列表或元组,表示在输入特征两侧各填充padding[0]
大小的 0。默认值:0。- dilation (inttuple,可选) - 空洞大小。可以为单个整数或包含一个整数的元组或列表,表示卷积核中的元素的空洞。默认值:1。
- groups (int,可选) - 一维卷积层的组数。根据 Alex Krizhevsky 的深度卷积神经网络(CNN)论文中的成组卷积:当 group=n,输入和卷积核分别根据通道数量平均分为 n 组,第一组卷积核和第一组输入进行卷积计算,第二组卷积核和第二组输入进行卷积计算,……,第 n 组卷积核和第 n 组输入进行卷积计算。默认值:1。
- padding_mode (str,可选) - 填充模式。包括
'zeros'
,'reflect'
,'replicate'
或者'circular'
。默认值:'zeros'
。- weight_attr (ParamAttr,可选) - 指定权重参数属性的对象。默认值为 None,表示使用默认的权重参数属性。具体用法请参见
cn_api_paddle_ParamAttr
。- bias_attr (ParamAttr|bool,可选) - 指定偏置参数属性的对象。若
bias_attr
为 bool 类型,只支持为 False,表示没有偏置参数。默认值为 None,表示使用默认的偏置参数属性。具体用法请参见cn_api_paddle_ParamAttr
。- data_format (str,可选) - 指定输入的数据格式,输出的数据格式将与输入保持一致,可以是"NCL"和"NLC"。N 是批尺寸,C 是通道数,L 是特征长度。默认值:"NCL"。
- weight - 本层的可学习参数,类型为
Parameter
- bias - 本层的可学习偏置,类型为
Parameter
- 输入:(N,Cin,Lin)
- 卷积核:(Cout,Cin,K)
- 偏置:(Cout)
- 输出:(N,Cout,Lout)
其中:
$$L_{out} = \frac{(L_{in} + 2 * padding - (dilation * (kernel\_size - 1) + 1))}{stride} + 1$$ 如果
padding
= "SAME":
$$L_{out} = \frac{(L_{in} + stride - 1)}{stride}$$ 如果
padding
= "VALID":
$$L_{out} = \frac{\left ( L_{in} -\left ( dilation*\left ( kernel\_size-1 \right )+1 \right ) \right )}{stride}+1$$
COPY-FROM: paddle.nn.Conv1D