簡體   English   中英

如何確定 nn.Conv2d() 的參數

[英]How to determine parameters for nn.Conv2d()

我正在閱讀這篇研究論文( https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf )並嘗試遵循 ZE1ADBCBB92C6202D0B3EZ619F9 上的代碼我不明白 nn.Conv2d() 的參數是如何確定的。 對於第一個 Conv2d:64@96*96 是否意味着 64 個通道,尺寸為 96 x 96 kernel 尺寸? 如果是這樣,那么為什么 function 中的 kernel 尺寸為 10? 我已經用谷歌搜索了參數及其含義,從我閱讀的內容中我了解到它的(input_channels, output_channels, kernel_size)

這里是 github 帖子:https://github.com/fangpin/siamese-pytorch/blob/master/train.py

參考研究論文的第 4 頁有 model 原理圖。

       self.conv = nn.Sequential(
            nn.Conv2d(1, 64, 10),  # 64@96*96
            nn.ReLU(inplace=True),
            nn.MaxPool2d(2),  # 64@48*48
            nn.Conv2d(64, 128, 7),
            nn.ReLU(),    # 128@42*42
            nn.MaxPool2d(2),   # 128@21*21
            nn.Conv2d(128, 128, 4),
            nn.ReLU(), # 128@18*18
            nn.MaxPool2d(2), # 128@9*9
            nn.Conv2d(128, 256, 4),
            nn.ReLU(),   # 256@6*6
        )
        self.liner = nn.Sequential(nn.Linear(9216, 4096), nn.Sigmoid())
        self.out = nn.Linear(4096, 1)

如果您查看 model 原理圖,它顯示了兩件事,

  • 卷積kernel的參數,
  • 特征圖的參數( nn.Conv2D操作的輸出)

例如第一個conv2d層是 64@10x10,意味着 64 個 output 通道和一個 10x10 kernel。

而特征 map 是64@96x96 ,它來自對105x105x1大小的輸入應用64@10x10卷積運算。 這樣,您可以獲得 64 個 output 通道和105-10+1=96大小的寬度和高度。

暫無
暫無

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

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