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所示:
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行。
可以看出,一维卷积有着和全连接层类似的作用,目前在注意力机制上,一维卷积有着很高的使用频率。
在pytorch 使用:
例子1:
输入(1,1,20),pytorch 会把他当做【B,C,L】,然后conv1d(in_channel=1,out_channel=1,kernel_size=2),输出为【1,1,19】,
也是在X2说滑动卷积。