这篇文章主要说明两个东西,一个是Convolution1D的介绍,另外一个是model.summary()的使用。python
首先我先说下model.summary(),此方法能够打印出模型的信息,读者能够查看每层输出内容。app
接下来就说下Convolution1D的使用了,Convolution1D一维卷积,主要用于过滤一维输入的相邻元素,官方文档是这样的spa
keras.layers.convolutional.Convolution1D(nb_filter, filter_length, init='glorot_uniform', activation=None, weights=None, border_mode='valid', subsample_length=1, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True, input_dim=None, input_length=None)
而后官方给出的事例是这样的code
# apply a convolution 1d of length 3 to a sequence with 10 timesteps, # with 64 output filters model = Sequential() model.add(Convolution1D(64, 3, border_mode='same', input_shape=(10, 32))) # now model.output_shape == (None, 10, 64) # add a new conv1d on top model.add(Convolution1D(32, 3, border_mode='same')) # now model.output_shape == (None, 10, 32)
而后用print(model.summary())输出是这样的:orm
下面我就围绕着上面代码简单介绍下:当把该层做为首层时,须要说明 input_shapeblog
input_shape=(10, 32)简而言之就是10个32维的向量了,nb_filter : 卷积核的数量,也是输出的维度。filter_length : 每一个过滤器的长度。
首先咱们先看第一个卷积层,输出shape很容易理解,由于有64个卷积核,因此输出也就是64,接下来咱们看下参数:其实能够这么理解,咱们把例子中(10,32)的信号进行1D卷积至关于对其进行卷积核为(filter_length, 32)的2D卷积
好了,就酱吧文档