深度學習 卷積理解

2021-08-13 02:36:00 字數 1817 閱讀 6546

一.深度卷積神經網路學習筆記(一):

假設輸入影象尺寸為w,卷積核尺寸為f,步幅(stride)為s(卷積核移動的步幅),padding使用p(用於填充輸入影象的邊界,一般填充0),那麼經過該卷積層後輸出的影象尺寸為(w-f+2p)/s+1。

2.它寫出為什麼會用padding?卷積核大小該如何確定?stride該如何確定?

二. caffe的卷積原理:

1.這篇文章把卷積的過程寫得非常形象化,用簡單的例子講明白了卷積過程在caffe寫**的時候是怎麼實現的。

2.它還寫了卷積後輸出影象大小n為:

n=[((image_h + 2*pad_h – kernel_h)/stride_h)+ 1]*[((image_w +2*pad_w – kernel_w)/stride_w) + 1] (結果向上取整)

image_h:輸入影象的高度

image_w:輸入影象的寬度

pad_h:在輸入影象的高度方向兩邊各增加pad_h個單位長度(因為有兩邊,所以乘以2)

pad_w:在輸入影象的寬度方向兩邊各增加pad_w個單位長度(因為有兩邊,所以乘以2)

kernel_h:卷積核的高度

kernel_w:卷積核的寬度

stride_h:高度方向的滑動步長;

stride_w:寬度方向的滑動步長。

因此,n為輸出影象大小的長寬乘積,也是卷積核在輸入影象上滑動可擷取的最大特徵數。

k=k*k,表示利用卷積核大小的框在輸入影象上滑動所擷取的資料大小,與卷積核大小一樣大。

上面是一般情況下的計算,在tensorflow中根據padding時引數選擇不同,卷積輸出影象的計算方式也可能不同,見:tensorflow中卷積的padding操作

3.池化大小的計算與卷積類似:

n=[((image_h + 2*pad_h – kernel_h)/stride_h)+ 1]*[((image_w +2*pad_w – kernel_w)/stride_w )+ 1] (結果向上取整)

image_h:輸入影象的高度

image_w:輸入影象的寬度

pad_h:在輸入影象的高度方向兩邊各增加pad_h個單位長度(因為有兩邊,所以乘以2)

pad_w:在輸入影象的寬度方向兩邊各增加pad_w個單位長度(因為有兩邊,所以乘以2)

kernel_h:池化區域的高度

kernel_w:區域的寬度

stride_h:高度方向的滑動步長;

stride_w:寬度方向的滑動步長。

因此,n為輸出影象大小的長寬乘積,也是卷積核在輸入影象上滑動可擷取的最大特徵數。

附tensorflow卷積計算:

先定義幾個引數

輸入大小 w×w

filter大小 f×f

步長 s

padding的畫素數 p

參考

三.卷積時引數的理解

卷積運算時總是有乙個引數需要選擇,matlab中是shape,python中是border_mode

關於shape選項的說明;

當shape=full時,返回全部二維卷積結果,即返回c的大小為(ma+mb-1)x(na+nb-1)

shape=same時,返回與a同樣大小的卷積中心部分

shape=valid時,不考慮邊界補零,即只要有邊界補出的零參與運算的都捨去,返回c的大小為(ma-mb+1)x(na-nb+1)

理解深度卷積網路

1 如何分類貓和狗?在kaggle的cat dogs比賽中,提供一系列有貓和狗標記的影象。訓練集包含25000張關於狗和貓的,測試集包含12500。影象有不同的解析度,貓和狗有不同的形狀,位置,顏色。可能坐著,可能開心或者傷心。貓可能睡覺狗可能在吠。神經網路在分類時高效是其自動學習抽象的多層,其簡化...

14 深度學習 卷積

補交作業 第十二次作業 垃圾郵件分類 第十三次作業 垃圾郵件分類2 這兩個作業電腦顯示卡炸了,返廠修了兩周,所以沒有完成,只能在手機上直播課,謝謝老師 第六次作業 邏輯回歸 這個作業我4月23日就已經弄好了,但是忘記交了,老師可以檢視一下這篇部落格的日期 1.簡述人工智慧 機器學習和深度學習三者的聯...

14 深度學習 卷積

1.簡述人工智慧 機器學習和深度學習三者的聯絡與區別。區別 1 人工智慧 目的和結果,深度學習,機器學習是方法,是工具。2 機器學習 一種實現人工智慧的方法 機器學習都可以被精準地定義為 1 任務2 訓練過程3 模型表現 3 深度學習 是一種實現機器學習的技術,適合處理大資料 2.全連線神經網路與卷...