nn.Conv1d和nn.Conv2d理解


參考鏈接:

https://blog.csdn.net/sunny_xsc1994/article/details/82969867

https://www.cnblogs.com/lovephysics/p/7220111.html

這里只做理解,不放官方文檔。

1.nn.Conv1d
感覺一張圖就可以理解,不得不說這個圖真的太好了。圖片來源:https://zhuanlan.zhihu.com/p/29201491

所謂一維卷積,就是卷積時只看縱列。初始:7乘5 卷積核:三種大小,分別為2*5、3*5、4*5,每種兩個。重點是卷積時,只在縱列一個方向上滑動。這里stride為1,所以輸出(n+2p-f)/s+1,padding為0,所以輸出分別是{(7-2)/1 +1=6乘(5-5)/1+1=1},(5*1),4*1。經過一個卷積核大小為4的max_pooling,變成1個值。最后獲得6個值,進行拼接,在經過一個全連接層,輸出2個類別的概率。

 

2.nn.Conv2d
官方說明,給定一個4維的input和filter tensor,計算一個二維卷積。所謂二維計算就是橫向和縱向均卷積。

舉個例子:例子來源:https://www.cnblogs.com/lovephysics/p/7220111.html

輸入和核如下,沒有padding,stride=1

 

輸出為:將卷積核對應在input上,第一行對應算完,再算第二行,不清楚的,可以動手寫一下。

 

14 = 4 * 1 + 3 * 0 + 1 * 1 + 2 * 2 + 1 * 1 + 0 * 0 + 1 * 0 + 2 * 0 + 4 * 1
6 = 3 * 1 + 1 * 0 + 0 * 1 + 1 * 2 + 0 * 1 + 1 * 0 + 2 * 0 + 4 * 0 + 1 * 1
6 = 2 * 1 + 1 * 0 + 0 * 1 + 1 * 2 + 2 * 1 + 4 * 0 + 3 * 0 + 1 * 0 + 0 * 1
12 = 1 * 1 + 0 * 0 + 1 * 1 + 2 * 2 + 4 * 1 + 1 * 0 + 1 * 0 + 0 * 0 + 2 * 1
當然這只是我的個人理解,如果有問題,可以下方留言,共同討論。
————————————————
版權聲明:本文為CSDN博主「Elva_23」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Elva_23/article/details/83826587


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM