参考资料:
https://blog.csdn.net/momaojia/article/details/65641430
https://keras.io/zh/layers/convolutional/
版本问题
keras 1.x版本是叫Convolution1D,可以用 from tensorflow.python.keras.layers import Convolution1D
导入
keras 2.x版本是叫Conv1D,可以用from tensorflow.python.keras.layers.convolutional import Conv1D
导入
例子1
model = tf.keras.Sequential()
model.add(Convolution1D(nb_filter=64, filter_length=3, activation='relu', padding="same", input_shape=(100, 20)))
上面例子中,Convolution1D的参数可以理解为
input_shape是输入维度,可以看出是一个100*20的矩阵,其中100可以是每个句子长度为100,20则是每个词向量长度的为20
64是参数nb_filter,就是卷积核数量,也就是输出的维度
3是filter_length,也就是每个过滤器的长度。
整个模型要做的,就是相当于对(100,20)的数据,用维度为(3, 20)的过滤器做2D卷积,输出向量的长度是64
例子2
model = tf.keras.Sequential()
model.add(Convolution1D(6, 2, activation='relu', padding="same", input_shape=(10, 8)))
和例子1类似,这个例子就是对(10, 8)的数据,用维度为(2, 8)的过滤器做2D卷积,输出的向量长度是6
图片解释如下: