keras | 一维序列- conv1d卷积的使用

  1. keras中Conv1D从哪里导入?

from keras.layers import *

  1. Conv1D的输入维度是怎样的?

一般来说,输入数据如果是7500x128列的二维表形式的话,需要加入一个空间维度,如下

X = np.expand_dims(X, axis=2) #表示是是增加的维度是在第三个维度上
# reshape (569, 30) to (569, 30, 1)  now input can be set as input_shape=(30,1)
model.add(Conv1D(2,2,activation='relu',input_shape=(30, 1)
  1. 输入和输出的维度如何计算?

举例:

#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)

当把该层作为首层时,需要说明 input_shape,input_shape=(10, 32)简而言之就是10个32维的向量了,nb_filter : 卷积核的数量,也是输出的维度。filter_length : 每个过滤器的长度。
首先我们先看第一个卷积层,输出shape很容易理解,因为有64个卷积核,所以输出也就是64,接下来我们看下参数:其实可以这么理解,我们把例子中(10,32)的信号进行1D卷积相当于对其进行卷积核为(filter_length, 32)的2D卷积。如下图。

ps:[5]讲的听不错。

参考文献
[1图]https://www.cnblogs.com/qianboping/p/6516639.html
[2]https://www.programcreek.com/python/example/89676/keras.layers.Conv1D
[3]https://zhuanlan.zhihu.com/p/22135796
[4]https://stackoverflow.com/questions/43396572/dimension-of-shape-in-conv1d
[5]https://juejin.im/post/5a2245786fb9a0451c3a3505

你可能感兴趣的:(keras)