前言
一维卷积在语音和自然语言处理中十分常见,本篇paper:Stacked 1D convolutional networks for end-to-end small footprint voice trigger detection通过一个特征上的一维卷积和时间维度上的一维卷积来完成特征堆叠的。
论文
block结构如上图所示,其中现在特征维度上做一维卷积,然后在时间维度上做一维卷积,其中在时间维度上可以根据卷积核大小控制帧长。
本片论文的block实现也十分简单,正如论文中所说:
相当于一个2D卷积用了一个F1和一个1K的卷积核。
代码实现
import tensorflow as tf
input=39#MFCC特征维数
x = tf.placeholder(tf.float32, [None, None, 39, 1])#输入数据
print(x)
conv1=tf.layers.conv2d(x,1,[3,1],strides=1, padding='same')#第一层一维卷积
print(conv1)
conv2=tf.layers.conv2d(conv1,1,[1,3],strides=1, padding='same')#第二层TDNN
print(conv2)