Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么nn.Conv1d在二维特征[b、c、h、w]上工作?_Python_Neural Network_Pytorch_Convolution - Fatal编程技术网

Python 为什么nn.Conv1d在二维特征[b、c、h、w]上工作?

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和

我想知道为什么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,看看它是如何沿着输入的宽度和高度移动的,输入的宽度和高度就是空间维度。


我认为现在很清楚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]
,这些都是不同的。