簡體   English   中英

為什么 nn.Conv1d 對二維特征 [b, c, h, w] 起作用?

[英]Why does nn.Conv1d work on 2d feature [b, c, h, w]?

我想知道為什么 conv1d 適用於 2d 功能(批次、通道、高度、寬度)。

一個 nn.Conv1d(channel, channel, kernel_size=(1,1)) 在我放置 2d 特征時起作用,但給出的結果與 nn.Conv2d(channel, channel, kernel_size=1) 不同。

我想知道為什么 conv1d 有效,以及一維卷積中的二維 kernel 大小是什么意思。

“我想知道為什么 conv1d 有效,以及一維卷積中的二維 kernel 大小是什么意思”

它沒有任何理由不工作。 在引擎蓋下,所有這些“卷積”的意思是“點積”,現在它可以是矩陣和向量、矩陣和矩陣、向量和向量等。簡單地說,1D 和 2D 卷積之間的真正區別是自由度沿着輸入的空間維度移動 這意味着如果您查看1D 卷積,它只能沿一個方向移動,即輸入的時間維度(注意 kernel 可以是向量,矩陣無關緊要)。 另一方面, 2D 卷積可以自由地沿輸入的 2 維(高度和寬度)移動,即空間維度。 如果它仍然看起來令人困惑,請查看下面的 GIF。

一維卷積在行動:

注意:這是一個一維卷積,kernel 大小為3x3 ,看看它是如何只向下移動作為時間維度的輸入。 一維轉化

2D 卷積在行動:

注意:這是一個 2D 卷積,kernel 大小為3x3 ,看看它是如何沿着輸入的寬度和高度移動的,這是空間維度。 二維轉換

我認為現在很清楚 1D 和 2D conv 之間的實際區別是什么,以及為什么它們都會為相同的輸入產生不同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM