21 keras卷积层

上一篇介绍了基础核心层,就是用来构建普通网络的基础部件。这一篇主要介绍的是卷积层,主要用于构建卷积神经网络等需要用到卷积操作的神经网络。卷积操作(可以参看博文卷积算子计算方法-卷积操作)的优点就是可以增强原信号特征,增强对原信号位移、形变之后的识别能力,有效降低噪音等。而卷积神经网络是目前来说对图像识别的最好工具,因为它可以有效识别有位移、形变等的图像。下面来看下卷基层都有哪些结构。

一、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为(input_dim, output_dim)。(如果指定init了,那么weights可以赋值None)
  • border_mode: “valid”或”full”。valid模式只输出原图像经过卷积操作的结果;而full模式则是如果原图像与卷积核不匹配,有剩余时,通过填充0而凑整进行卷积运算。比如原图55,卷积算子22,依次匹配的话会有一列数据剩余。如果不计算剩余部分的数据就是valid模式;如果把原图通过填充0 的方式扩展为6*6的图像再计算,那就是full模式。官方简单解释看这里,也可以看我的博文卷积操作
  • subsample_length: factor by which to subsampleoutput。
  • W_regularizer:权值的规则化项,必须传入一个WeightRegularizer的实例(比如L1或L2规则化项,详细的内置规则化见这里)。
  • b_regularizer:偏置值的规则化项,必须传入一个WeightRegularizer的实例(比如L1或L2规则化项,详细的内置规则化见这里)。
  • activity_regularizer:网络输出的规则化项,必须传入一个ActivityRegularizer的实例(详细的内置规则化见这里)。
  • W_constraint:权值约束,必须传入一个constraints的实例(详细的约束限制见这里)。
  • b_constraint:偏置约束,必须传入一个constraints的实例(详细的约束限制见这里)。
  • input_dim:输入数据的维度。这个参数和input_shape至少要提供一个传值。
  • input_length:输入序列的长度。This argument is required ifyou are going to connectFlatten thenDense layers upstream (without it,the shape of the dense outputs cannot be computed)

二、Convolution2D

keras.layers.convolutional.Convolution2D(nb_filter,nb_row, nb_col,  
        init='glorot_uniform', activation='linear', weights=None,  
        border_mode='valid', subsample=(1, 1),  
        W_regularizer=None, b_regularizer=None, W_constraint=None)  

这个是CNN常用的方法。这个卷积操作是通过一个2维窗口的卷积核进行过滤。当把该层当做模型的第一层时,需要提供参数input_shape,比如input_shape=(3, 128, 128)表示128128的RGB(3通道,看以理解成3张128128的图片叠加而成的)图片。
**** inputshape: 4维 tensor(nb_samples, channels,rows, cols)
**** outputshape: 4维 tensor(nb_samples, nb_filter,rows, cols). rows,cols的值可能会随着边缘填充0元素而产生变化。
**** 参数

  • nb_filter : 过滤器的数量。
  • nb_row : 卷积核的行数。
  • nb_col: 卷积核的列数。
  • init : 初始化权值的函数名称或Theano function。可以使用Keras内置的(内置初始化权值函数见这里),也可以传递自己编写的Theano function。如果不给weights传递参数时,则该参数必须指明。
  • activation : 激活函数名称或者Theano function。可以使用Keras内置的(内置激活函数见这里),也可以是传递自己编写的Theano function。如果不明确指定,那么将没有激活函数会被应用。
  • weights :用于初始化权值的numpy arrays组成的list。这个List至少有1个元素,其shape为(input_dim, output_dim)。(如果指定init了,那么weights可以赋值None)
  • border_mode: “valid”或”full”。valid模式只输出原图像经过卷积操作的结果;而full模式则是如果原图像与卷积核不匹配,有剩余时,通过填充0而凑整进行卷积运算。比如原图55,卷积算子22,依次匹配的话会有一列数据剩余。如果不计算剩余部分的数据就是valid模式;如果把原图通过填充0 的方式扩展为6*6的图像再计算,那就是full模式。官方简单解释看这里,也可以看我的博文卷积操作
  • subsample_length: factor by which to subsampleoutput。
  • W_regularizer:权值的规则化项,必须传入一个WeightRegularizer的实例(比如L1或L2规则化项,详细的内置规则化见这里)。
  • b_regularizer:偏置值的规则化项,必须传入一个WeightRegularizer的实例(比如L1或L2规则化项,详细的内置规则化见这里)。
  • activity_regularizer:网络输出的规则化项,必须传入一个ActivityRegularizer的实例(详细的内置规则化见这里)。
  • W_constraint:权值约束,必须传入一个constraints的实例(详细的约束限制见这里)。
  • b_constraint:偏置约束,必须传入一个constraints的实例(详细的约束限制见这里)。

三、MaxPooling1D类

layers.convolutional.MaxPooling1D(pool_length=2, stride=None, ignore_border=True)  

最大池化操作,也就是常说的下采样。因为这个是对于1维输入进行操作的,因此下采样因子就只有一个长度。
inputshape: 3维 tensor(nb_samples, steps, dim)
outputshape: 3维 tensor(nb_samples,downsampled_steps, dim)
参数:

  • pool_length : 下采样因子的长度。比如对输入进行length=2的下采样操作的话,结果就剩下了输入的一半。
  • stride: int或者None。
  • ignore_border: boolean,是否忽略掉边缘部分数据。

四、MaxPooling2D类

keras.layers.convolutional.MaxPooling2D(pool_size=(2, 2), ignore_border=True)  

这个下采样的采样因子是2维的。
inputshape: 4维 tensor(nb_samples, stack_size,nb_row, nb_col)
outputshape: 4维 tensor(nb_samples, stack_size,new_nb_row, new_nb_col)
参数:

  • pool_size : 下采样因子的shape。比如对输入进行size为(2,2)的下采样操作的话,结果就剩下了输入的每一维度的一半,即总的结果是原输入的四分之一。
  • ignore_border: boolean。比如原输入是(5,5),pool_size=(2,2),如果ignore_border=True的话,那么生成的结果将会是(2,2);如果ignore_border=False时,生成的结果将会是(3,3)。

原文地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容