本文来自优快云博客:http://blog.youkuaiyun.com/niuwei22007/article/details/49366745
上一篇介绍了基础核心层,就是用来构建普通网络的基础部件。这一篇主要介绍的是卷积层,主要用于构建卷积神经网络等需要用到卷积操作的神经网络。卷积操作(可以参看博文卷积算子计算方法-卷积操作)的优点就是可以增强原信号特征,增强对原信号位移、形变之后的识别能力,有效降低噪音等。而卷积神经网络是目前来说对图像识别的最好工具,因为它可以有效识别有位移、形变等的图像。下面来看下卷基层都有哪些结构。
一、Convolution1D
keras.layers.convolutional.Convolution1D(nb_filter,filter_length,
init='uniform', activation='linear', weights=None,
border_mode='valid', subsample_length=1,
W_regularizer=None, b_regularizer=None, W_constraint=None,
b_constraint=None, input_dim=None, input_length=None)
该卷积操作用于过滤一维输入的相邻元素。当把该层作为模型的第一层时,要么给参数input_dim传值(int类型,比如128代表128维的向量),要么给input_shape传值(整数元组,比如(10,128)代表10个128维的向量)。
inputshape: 3维 tensor(nb_samples, steps,input_dim)
outputshape: 3维 tensor(nb_samples, steps,nb_filter) .steps的值可能会随着边缘填充0元素而产生变化。
参数:
- nb_filter : 卷积核的数量,也是输出的一个维度。
- filter_length : 每个过滤器的长度(因为是一维的,所以只有长度)。
- init : 初始化权值的函数名称或Theano function。可以使用Keras内置的(内置初始化权值函数见这里),也可以传递自己编写的Theano function。如果不给weights传递参数时,则该参数必须指明。
- activation : 激活函数名称或者Theano function。可以使用Keras内置的(内置激活函数见这里),也可以是传递自己编写的Theano function。如果不明确指定,那么将没有激活函数会被应用。
- weights :用于初始化权值的numpy arrays组成的list。这个List至少有1个元素,其shape为(