假设输入数据维度为8,filter维度为5;
不加padding时,输出维度为4,如果filter的数量为16,那么输出数据的shape就是4*16.
一维卷积不代表卷积核只有一维,也不代表被卷积的feature也是一维。一维的意思是说卷积的方向是一维的。一维卷积核仅仅可以在左右这个单一的一维方向上移动。
torch.nn.Conv1d(
in_channels: int,
out_channels: int,
kernel_size: _size_1_t,
stride: _size_1_t = 1,
padding: _size_1_t | str = 0,
dilation: _size_1_t = 1,
groups: int = 1,
bias: bool = True,
padding_mode: str = 'zeros',
device: Any | None = None,
dtype: Any | None = None
)
nn.Conv1d(
in_channels=32,
out_channels=128,
kernel_size=20,
stride=1,
padding='same',
在代码中,nn.Conv1d 的 out_channels 参数指定了卷积核的数量,而不是输出通道的数量。因此,对于每个卷积核,它都会生成一个输出通道。在你的示例中,有 128 个卷积核,因此将生成 128 个输出通道。
输入通道的数量由 in_channels 参数指定,它表示输入数据的通道数。在你的示例中,输入通道的数量是 32。
总结一下,nn.Conv1d 中的 out_channels 参数控制卷积核的数量,每个卷积核生成一个输出通道。输入通道的数量由 in_channels 参数指定。在你的示例中,有 128 个卷积核,因此有 128 个输出通道。