概念
1)卷積核=過濾器filter:
每個(gè)卷積核有長(zhǎng)寬深3個(gè)維度
2)feature map:
在cnn的每個(gè)卷積層秦陋,數(shù)據(jù)都是以三維形式存在的各谚。你可以把它看成許多個(gè)二維圖片疊在一起(像豆腐皮一樣)省核,其中每一個(gè)稱為一個(gè)feature map墩虹。
3)feature map怎么生成
在輸入層豌熄,如果是灰度圖片授嘀,就只有一個(gè)feature map;如果是彩色圖片锣险,一般就是3個(gè)feature map(紅綠藍(lán))蹄皱。
4)卷積核運(yùn)算過程
例如輸入224x224x3(rgb三通道),輸出是32位深度芯肤,卷積核尺寸為5x5巷折。
strides=1時(shí):
D是深度;F是filter的大小(寬度或者長(zhǎng)度)崖咨;表示filter的第d層第m行第n列權(quán)重锻拘;
表示圖像的第d層第i行第j列像素
那么我們需要32個(gè)卷積核,每一個(gè)的尺寸為5x5x3(最后的3就是原圖的rgb位深3)击蹲,每一個(gè)卷積核的每一層是5x5(共3層)分別與原圖的每層224x224卷積署拟,然后將得到的三張新圖疊加(算術(shù)求和),變成一張新的feature map歌豺。 每一個(gè)卷積核都這樣操作推穷,就可以得到32張新的feature map了。? 也就是說:
不管輸入圖像的深度為多少类咧,經(jīng)過一個(gè)卷積核(filter)馒铃,最后都通過下面的公式變成一個(gè)深度為1的特征圖。不同的filter可以卷積得到不同的特征痕惋,也就是得到不同的feature map骗露。
tf.layers.conv2d
def conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC", dilations=[1, 1, 1, 1], name=None):
? ? r"""Computes a 2-D convolution given 4-D `input` and `filter` tensors.
feature map的一些理解:
1)特征映射,是輸入圖像和卷積核卷積后生成的feature map,圖像的特征;
2)feature map的意思在計(jì)算機(jī)視覺領(lǐng)域基本一致,可以草率的翻譯成特征圖血巍,例如rgb,所有點(diǎn)的r組成一個(gè)feature map;
3)在輸入層珊随,如果是灰度圖片述寡,那就只有一個(gè)feature map;如果是彩色圖片叶洞,一般就是3個(gè)feature map(紅綠藍(lán));
卷積核的一些理解:
1)層與層之間會(huì)有若干個(gè)卷積核(kernel)鲫凶,上一層和每個(gè)feature map跟每個(gè)卷積核做卷積,都會(huì)產(chǎn)生下一層的一個(gè)feature map;
2)卷積核在有的文檔里也稱為過濾器(filter):?
每個(gè)卷積核具有長(zhǎng)寬深三個(gè)維度衩辟;
在某個(gè)卷積層中螟炫,可以有多個(gè)卷積核:下一層需要多少個(gè)feather map,本層就需要多少個(gè)卷積核艺晴。
卷積核的形狀
每個(gè)卷積核具有長(zhǎng)昼钻、寬掸屡、深三個(gè)維度。在CNN的一個(gè)卷積層中:
卷積核的長(zhǎng)然评、寬都是人為指定的仅财,長(zhǎng)X寬也被稱為卷積核的尺寸,常用的尺寸為3X3碗淌,5X5等盏求;
卷積核的深度與當(dāng)前圖像的深度(feather map的張數(shù))相同,所以指定卷積核時(shí)亿眠,只需指定其長(zhǎng)和寬 兩個(gè)參數(shù)碎罚。例如,在原始圖像層 (輸入層)纳像,如果圖像是灰度圖像荆烈,其feather map數(shù)量為1,則卷積核的深度也就是1爹耗;如果圖像是grb圖像耙考,其feather map數(shù)量為3,則卷積核的深度也就是3.
因?yàn)殡S著網(wǎng)絡(luò)的加深潭兽,feature map的長(zhǎng)寬尺寸縮小倦始,本卷積層的每個(gè)map提取的特征越具有代表性(精華部分),所以后一層卷積層需要增加feature map的數(shù)量山卦,才能更充分的提取出前一層的特征鞋邑,一般是成倍增加
https://blog.csdn.net/xys430381_1/article/details/82529397
filter的理解
filter有兩種理解:
在有的文檔中,一個(gè)filter等同于一個(gè)卷積核:只是指定了卷積核的長(zhǎng)寬深账蓉;
而有的情況(例如tensorflow等框架中枚碗,filter參數(shù)通常指定了卷積核的長(zhǎng)、寬铸本、深肮雨、個(gè)數(shù)四個(gè)參數(shù)),filter包含了卷積核形狀和卷積核數(shù)量的概念:即filter既指定了卷積核的長(zhǎng)寬深箱玷,也指定了卷積核的數(shù)量怨规。
一般 channels 的含義是,每個(gè)卷積層中卷積核的數(shù)量
https://blog.csdn.net/xiaocong1990/article/details/82532814
TextCNN對(duì)文本淺層特征的抽取能力很強(qiáng)锡足,在短文本領(lǐng)域如搜索波丰、對(duì)話領(lǐng)域?qū)W⒂谝鈭D分類時(shí)效果很好,應(yīng)用廣泛舶得,且速度快掰烟,一般是首選;對(duì)長(zhǎng)文本領(lǐng)域,TextCNN主要靠filter窗口抽取特征纫骑,在長(zhǎng)距離建模方面能力受限蝎亚,且對(duì)語序不敏感。
http://www.cnblogs.com/qggg/p/6832342.html
```
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)
除去name參數(shù)用以指定該操作的name惧磺,與方法有關(guān)的一共五個(gè)參數(shù):
第一個(gè)參數(shù)input:指需要做卷積的輸入圖像颖对,它要求是一個(gè)Tensor,
具有[batch, in_height, in_width, in_channels]這樣的shape磨隘,
具體含義是[訓(xùn)練時(shí)一個(gè)batch的圖片數(shù)量, 圖片高度, 圖片寬度, 圖像通道數(shù)]
第二個(gè)參數(shù)filter:相當(dāng)于CNN中的卷積核缤底,它要求是一個(gè)Tensor,
具有[filter_height, filter_width, in_channels, out_channels]這樣的shape番捂,
具體含義是[卷積核的高度个唧,卷積核的寬度,圖像通道數(shù)设预,卷積核個(gè)數(shù)]
第三個(gè)參數(shù)strides:卷積時(shí)在圖像每一維的步長(zhǎng)徙歼,這是一個(gè)一維的向量,長(zhǎng)度4
第四個(gè)參數(shù)padding:只能是"SAME","VALID"其中之一鳖枕,這個(gè)值決定了不同的卷積方式
第五個(gè)參數(shù):use_cudnn_on_gpu:bool類型魄梯,是否使用cudnn加速,默認(rèn)為true
結(jié)果返回一個(gè)Tensor宾符,這個(gè)輸出酿秸,就是我們常說的feature map,
shape仍然是[batch, height, width, channels]這種形式魏烫。
```
完畢辣苏。