一维卷积和二位卷积的区别

本文详细解析了一维(1D)与二维(2D)卷积在数值输入、计算方式及意义上的区别。通过具体示例说明了两者在处理时间序列与图像数据时的不同之处,特别强调了在PyTorch框架中的输入格式要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数值上的区别:1d只需要输入和输出3维数组(batch,channel,inputDim)

                        2d需要输入输出4维数组(batch,channel,inputH,inputW)


计算上的区别:1d只在inputDim这个维度上计算,例子:speaker Recognition中每个segment有39维*300frame的数据,则只在时间维度上计算,即这里应该看成39个通道,每个通道300维数据,每个1d卷积操作只在300frames上面进行

                        2d要在inputH,inputW两个维度上面同时计算卷积,例子:speaker Recognition中每个segment有39维*300frame的数据,则会同时在时间和频率维度上计算卷积,即这里的39和300两个维度会同时计算卷积(之所以说39维是频率维度,是因为MFCC等特征是咋傅里叶变换之后得到的)

意义上的区别:1d卷积的一张“图”即为一个向量,这里即为300维数据,39个通道即相当于组成39张“图”,实际上,整个39*300才真正意义上算一张图,所以1d卷积只会在一张真正意义上的图上面操作,不会产生多张真正意义上的图。

                        2d卷积的一张图就是真正意义上的图了,因为它有宽和高两个维度作为操作对象,即这里的39*300都是被卷积的维度,此时通道数量为1,所以在2d卷积中产生的多个通道即对应着多张真正意义上的图。而不是像1d卷积那样用于只有真正意义上的一张图。


注意:

        对于1d卷积而言,39维*300frame的输入数据如上所述,39维为39个通道数,300为需要被卷积的时间轴上数值,所以在pytorch输入网络中时,39应该放到倒数第二个维度,300应该是最后一个维度,此时的1d卷积才是对300这个维度上面的卷积,而对于2d卷积则可以不用区分,因为两个维度都会公平地被卷积。

当然,在平时处理时,2d卷积都是把300放在前面,39放在后面的。所以转换成1d卷积时记得先permute一下维度才输入1d卷积。


说明:

        上述叙述只为本人自己好理解,如果给别人造成混乱,就还是别看我的了。。。。。咳咳


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值