pytorch的padding的理解和操作

2021-09-09 02:09:30 字數 1811 閱讀 4485

1  padding 的操作就是在影象塊的周圍加上格仔, 從而使得影象經過卷積過後大小不會變化,這種操作是使得影象的邊緣資料也能被利用到,這樣才能更好地擴張整張影象的邊緣特徵.

公式表示如下:

2   卷積核中size的選擇可能會導致input中的某幾行(或者最後 幾行)沒有關聯起來,這個可能是因為我們使用的模式是valid,而不是full(tensorflow中也叫做same模式,不過這個還沒研究,下一步好好看一看.........)

如果想要充分的利用input資訊,那麼就要非常依賴於使用者對於padding和stride等的引數設定,對於pytorch使用者來說需要知道 卷積核的選取與設定是怎麼樣影響結果的.(我可能還不怎麼清楚)

輸入訊號的格式:(n, c, h, w),其中n表示batch size,c表示channel個數,h,w分別表示特徵圖的高和寬

在nn.conv2d中padding實在卷積操作之前的, 可以進行補0操作,也可補其他的.

其中padding補0 的策略是四周都補,如果padding=1,那麼就會在原來輸入層的基礎上,上下左右各補一行,如果padding=(1,1)中第乙個引數表示在高度上面的padding,第二個引數表示在寬度上面的padding.如下圖:

但是填充完值不是0 ,而是0.9862,是因為其加上了偏置值0.9862

3  pytorch中預設的padding型別是vaild,

卷積的三種模式: full, same , valid

橙色部分為image,藍色部分為綠薄核,full就是從濾波核和image剛開始相交就進行卷積,白色的部分填充為0

2  same mode

當filter的中心和image的邊角重合時,開始做卷積運算,此時的filter範圍比full模式小了一圈.

另外一層含義是,卷積過後輸出的feature map尺寸與原影象的大小一致. (不過,大小的問題與卷積步長也有關係.)

same模式是比較常見的模式,因為在這種模式中,在影象前向傳播的過程中可以讓特徵圖的大小保持不變

當filter全部在image中間的時候,進行卷積運算,可見,filter的移動範圍更加小了

(1) 池化層的作用體現在降取樣,保留影象的顯著特徵,降低影象維度,使得特徵圖變小,簡化網路.,增大kernel的感受野,  同時,也會提供一些旋轉不變性.  但是特徵圖變小,有可能會影響到網路的準確度(措施:可以通過增加特徵的深度來彌補,如深度變成原來的2倍)

(2) 卷積會帶來的兩個問題(1,卷積運算後,輸出影象的尺寸會縮小; 2 越是邊緣的畫素點,對輸出的影響就越小,卷積的時候移到邊緣就結束了,但是中間的畫素點有可能會參與多次計算,但是邊緣的畫素點可能只參與一次計算....因此可能會丟失邊緣資訊.)

padding的用途: 保持邊界資訊;可以對有差異的進行補齊,使得影象的輸入大小一致;在卷積層中加入padding ,會使卷基層的輸入維度與輸出維度一致; 同時,可以保持邊界資訊  ..

div css的padding縮寫方式

在css中使用padding可以將padding top,padding bottom,padding left,padding right縮寫為乙個標記。padding標記可以帶乙個 二個 三個 四個引數,各有不同的含義。padding 20px 上 下 左 右各20px。padding 20px...

margin和padding 的區別

經常會看到這樣的布局android layout margintop 1.0dip 比較迷惑。查了下資料,有篇文章講的不錯,拿來一起分享!就拿layout margintop和paddingtop為例。layout margintop是從當前設定的控制項的頭部,開始向上移動,直到碰到上乙個控制項 父...

margin和padding的區別

padding 10px 0 10px 20px,上10 右0 下10 左20 margin 10px 0 10px 20px,上10 右0 下10 左20 四個值順時針旋轉 目前web2.0已經越來被人們認可,因為喜歡搞web開發的人員不得不硬著頭皮去學習web2.0的標準,其中很重要的一條就是新...