Python 为什么nn.Conv1d在二维特征[b、c、h、w]上工作?
我想知道为什么conv1d在2d特性(批次、通道、高度、宽度)上工作 当我放置2d特性时,nn.Conv1d(通道,通道,内核大小=(1,1))工作,但给出的结果与nn.Conv2d(通道,通道,内核大小=1)不同 我想知道为什么conv1d可以工作,以及1d卷积中的二维内核大小是什么意思。“我想知道conv1d为什么可以工作,以及1d卷积中的二维内核大小是什么意思。” 它没有任何理由不工作。所有这些“卷积”的意思都是“点积”,现在它可以是矩阵和向量、矩阵和矩阵、向量和向量等等。简单地说,1D和2D卷积的真正区别是一个人有自由沿着输入的空间维度移动。这意味着,如果你观察1D卷积,它只能沿着一个方向移动,即输入的时间维度(注意,内核可以是一个向量,矩阵,任何无关紧要的东西)。另一方面,2D卷积可以自由地沿输入的2个维度移动,即空间维度。如果仍然令人困惑,请查看下面的GIF 1D卷积作用: 注意:这是一个1D卷积,内核大小为3x3,看看它如何只向下移动输入,即时间维度。 2D协同进化在起作用: 注意:这是一个二维卷积,内核大小为3x3,看看它是如何沿着输入的宽度和高度移动的,输入的宽度和高度就是空间维度。Python 为什么nn.Conv1d在二维特征[b、c、h、w]上工作?,python,neural-network,pytorch,convolution,Python,Neural Network,Pytorch,Convolution,我想知道为什么conv1d在2d特性(批次、通道、高度、宽度)上工作 当我放置2d特性时,nn.Conv1d(通道,通道,内核大小=(1,1))工作,但给出的结果与nn.Conv2d(通道,通道,内核大小=1)不同 我想知道为什么conv1d可以工作,以及1d卷积中的二维内核大小是什么意思。“我想知道conv1d为什么可以工作,以及1d卷积中的二维内核大小是什么意思。” 它没有任何理由不工作。所有这些“卷积”的意思都是“点积”,现在它可以是矩阵和向量、矩阵和矩阵、向量和向量等等。简单地说,1D和
我认为现在很清楚1D和2D conv之间的实际区别,以及为什么它们对相同的输入都会产生不同的结果。我发现了这个主题:,基本上说它们是相同的(conv1d与元组内核和conv2d)。您能提供一个小的代码示例来显示您观察到的不同结果吗?这里有一个示例:使用
a=[[[0.7891]、[[0.5954]、[[0.8586]、[[0.9551]、[[0.3609]、[[0.2691]、[[0.1870]、[[0.0516]、[[0.6104]、[[0.7839]]、[[0.7839]]、1d=nn.conv1d(10,5,1]、[0.2691]、[0.1870.1870]、[0.0516]、[0.0516]、[0.6104]、[0.6104]、[0.7839]、[0.7839]、[2]和2d]conv1]、,conv1d(a)
给出了[[[-0.2319]、[[0.2898]、[-0.0504]、[-0.3410]、[[0.9247]]
和conv2d(a)
给出了[[-0.2789]、[-0.4271]、[-0.3730]、[-0.8238]、[-0.5334]
,这些都是不同的。