日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

都2021年了,不会还有人连深度学习还不了解吧(六)-- Padding篇

發布時間:2025/3/15 pytorch 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 都2021年了,不会还有人连深度学习还不了解吧(六)-- Padding篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

導讀

本篇文章主要介紹CNN中常見的填充方式Padding,Padding在CNN中用的很多,是CNN必不可少的組成部分,使用Padding的目的主要是為了調整輸出的大小,是必須搞清楚的知識點。如果你想繼續了解深度學習,那么請看下去吧!

目前深度學習系列已經更新了6篇文章,分別是激活函數篇、卷積篇、損失函數篇、下采樣篇、評估指標篇,另有1篇保姆級入門教程,1篇總結性文章CNN中十大令人拍案叫絕的操作,想要入門深度學習的同學不容錯過!

一、Padding介紹

1.1 什么是Padding

在進行卷積層的處理之前,有時要向輸入數據的周圍填入固定的數據(比如0、1等),這稱為填充(padding),是卷積運算中經常會用到的處理。例如,向下列tensor中使用幅度為1像素為0的填充。

虛線部分表示是填充的數據,這里省略了填充的內容0。

1.2 為什么要使用Padding

  • 1.使用填充主要是為了調整輸出的大小。比如,對大小為(4, 4)的輸入數據應用(3, 3)的濾波器時,輸出大小變為(2, 2),相當于輸出大小比輸入大小縮小了 2個元素。這在反復進行多次卷積運算的深度網絡中會成為問題。為什么呢?因為如果每次進行卷積運算都會縮小空間,那么在某個時刻輸出大小就有可能變為 1,導致無法再應用卷積運算。為了避免出現這樣的情況,就要使用填充。在剛才的例子中,將填充的幅度設為 1,那么相對于輸入大小(4, 4),輸出大小也保持為原來的(4, 4)。因此,卷積運算就可以在保持空間大小不變的情況下將數據傳給下一層。
  • 2.越是邊緣的像素點,對于輸出的影響越小,因為卷積運算在移動的時候到邊緣就結束了。中間的像素點有可能會參與多次計算,但是邊緣像素點可能只參與一次。所以結果可能會丟失邊緣信息。使用Padding可以在一定程度上保留邊界信息。

二、常見的Padding方式

這里我會以圖示的方式盡量將每種填充方式都闡述清楚,CNN中用到的填充方式無非就是下面的四種,最常用的是填0的Padding,另鏡面Padding在Unet論文中使用過,感興趣的同學可以自行下載去閱讀!

Unet:Unet論文鏈接

2.1 填0Padding

原tensor:

[[-0.1678, -0.4418, 1.9466],[ 0.9604, -0.4219, -0.5241],[-0.9162, -0.5436, -0.6446]]

經過Padding(幅度為2,填充為0)后:

[[ 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000],[ 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000],[ 0.0000, 0.0000, -0.1678, -0.4418, 1.9466, 0.0000, 0.0000],[ 0.0000, 0.0000, 0.9604, -0.4219, -0.5241, 0.0000, 0.0000],[ 0.0000, 0.0000, -0.9162, -0.5436, -0.6446, 0.0000, 0.0000],[ 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000],[ 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000]]

2.2 鏡面Padding

原始tensor:

[[0., 1., 2.], [3., 4., 5.], [6., 7., 8.]]

經過鏡面Padding之后:

[[8., 7., 6., 7., 8., 7., 6.],[5., 4., 3., 4., 5., 4., 3.],[2., 1., 0., 1., 2., 1., 0.],[5., 4., 3., 4., 5., 4., 3.],[8., 7., 6., 7., 8., 7., 6.],[5., 4., 3., 4., 5., 4., 3.],[2., 1., 0., 1., 2., 1., 0.]]

通俗解釋一下鏡面Padding是如何實現的,其實原理也很簡單,跟初中物理學過的鏡面反射原理是一樣的,分別以原始tensor的四條邊為鏡面,然后進行反射,即可得到鏡面Padding之后的tensor了。

2.3 填連續值Padding

原始tensor:

[[ 1.6585, 0.4320],[-0.8701, -0.4649]]

經過Padding(幅度為2,填充為3.5)之后,變為下列所示的tensor:

[[ 3.5000, 3.5000, 3.5000, 3.5000, 3.5000, 3.5000],[ 3.5000, 3.5000, 3.5000, 3.5000, 3.5000, 3.5000],[ 3.5000, 3.5000, 1.6585, 0.4320, 3.5000, 3.5000],[ 3.5000, 3.5000, -0.8701, -0.4649, 3.5000, 3.5000],[ 3.5000, 3.5000, 3.5000, 3.5000, 3.5000, 3.5000],[ 3.5000, 3.5000, 3.5000, 3.5000, 3.5000, 3.5000]]

2.4 使用輸入tensor的邊緣Padding

原始tensor:

[[0., 1., 2.],[3., 4., 5.],[6., 7., 8.]]

經過Padding(幅度為2)后的tensor:

[[0., 0., 0., 1., 2., 2., 2.],[0., 0., 0., 1., 2., 2., 2.],[0., 0., 0., 1., 2., 2., 2.],[3., 3., 3., 4., 5., 5., 5.],[6., 6., 6., 7., 8., 8., 8.],[6., 6., 6., 7., 8., 8., 8.],[6., 6., 6., 7., 8., 8., 8.]]

文章持續更新,可以關注微信公眾號【醫學圖像人工智能實戰營】獲取最新動態,一個專注于醫學圖像處理領域前沿科技的公眾號。堅持以實踐為主,手把手帶你做項目,打比賽,寫論文。凡原創文章皆提供理論講解,實驗代碼,實驗數據。更有上百部深度學習入門資料免費等你來拿,只有實踐才能成長的更快,關注我們,一起學習進步~

計劃

深度學習保姆級入門教程 – 論文+代碼+常用工具
1個字,絕! – CNN中十大令人拍案叫絕的操作
都2021年了,不會還有人連深度學習還不了解吧?(一)-- 激活函數篇
都2021年了,不會還有人連深度學習還不了解吧?(二)-- 卷積篇
都2021年了,不會還有人連深度學習還不了解吧?(三)-- 損失函數篇
都2021年了,不會還有人連深度學習還不了解吧?(四)-- 上采樣篇
都2021年了,不會還有人連深度學習還不了解吧?(五)-- 下采樣篇
都2021年了,不會還有人連深度學習還不了解吧?(六)-- Padding篇
都2021年了,不會還有人連深度學習還不了解吧?(七)-- 評估指標篇
都2021年了,不會還有人連深度學習還不了解吧?(八)-- 優化算法篇
都2021年了,不會還有人連深度學習還不了解吧?(九)-- 注意力機制篇
都2021年了,不會還有人連深度學習還不了解吧?(十)-- 數據歸一化篇

覺得寫的不錯的話,歡迎點贊+評論+收藏,歡迎關注我的微信公眾號,這對我幫助真的很大很大很大!

總結

以上是生活随笔為你收集整理的都2021年了,不会还有人连深度学习还不了解吧(六)-- Padding篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。