有如下输入:表示 298 个时间帧,每个时间帧有 80 个维度的输入;
一般情况(dilation=1)
Conv1d(in_channels=80, out_channels=512, dilation=1, kernel_size=5, stride=1)
表示输入通道为 80,输出通道为 512;
那么,卷积核为:(80, 5, 512)
,下面这样的卷积核一共有 512 个;
以下展示的是单个卷积核的运算,大小为 5 的卷积核以步长为 1 移动最终得到时间帧长度为 298-(5-1)=294;
dilation=2
Conv1d(in_channels=512, out_channels=512, dilation=2, kernel_size=3, stride=1)
卷积核大小为 (512, 512, 3)
但是其为膨胀卷积,所以卷积核实际大小为 5;计算方式为:
可见,卷积核大小为 3,但是中间进行了膨胀,即黑色部分不进行运算;最终时间帧为 294-(5-1)=290;
dilation=3
Conv1d(in_channels=512, out_channels=512, dilation=3, kernel_size=3, stride=1)
卷积核大小为 (512, 512, 3) 但是 dilation=3,因此最终为 7;有如下图:
最终时间帧为 290-(7-1)=284;
kernel_size=1
Conv1d(in_channels=512, out_channels=512, dilation=1, kernel_size=1, stride=1)
可以当作全连接层:
因此输出维度仍然为 284;