conv1d 卷积的理解与应用


1 在tensorflow 中:

conv1d(value,filter,stride,padding)

2 pytorch中:

conv1d(in_channel,out_channel,kernel_size,stride,padding)

 

一般输入为3D 张量【B,X1,X2】这里之所以使用X1,X2,代表维度,是因为一维卷积不仅可以应用在语音文字上,在图像处理方面也有应用,所以使用X,来统一总结下。

如果输入为以上,对于tensorflow.conv1d()中的filter参数设置应当如下:

fileter is 3D tensor [卷积宽度,in_channel,out_channel],

例子1:

例如输入为【1,20,1】 卷积核为 [1,1,1] ,stride=1 padding =VALID 则输出为【1,20,1】

分析:首先卷积核的输入通道=x2,输出通道1(代表有几个卷积核,自定义)。w =1 ,这个w 是作用在输入的X1 上,可以理解为每次卷积的行数。如图1所示:

conv1d 卷积的理解与应用_第1张图片

x1-w+1 = 20-1+1 =20 所以输出为【1,20,1】

 

例子2:

输入还是【1,20,1】,卷积核变为【2,1,1】,stride =1 padding =VALID,则输出变为了【1,19,1】,20-2+1 =19

在w=2 表示在20行上,一次卷积2行。

conv1d 卷积的理解与应用_第2张图片

可以看出,一维卷积有着和全连接层类似的作用,目前在注意力机制上,一维卷积有着很高的使用频率。

在pytorch 使用:

例子1:

输入(1,1,20),pytorch 会把他当做【B,C,L】,然后conv1d(in_channel=1,out_channel=1,kernel_size=2),输出为【1,1,19】,

也是在X2说滑动卷积。

 

 

你可能感兴趣的:(计算机视觉,编程)