簡體   English   中英

PyTorch nn.BatchNorm2d 中的“仿射”參數有什么作用?

[英]What does the "affine" parameter do in PyTorch nn.BatchNorm2d?

affine參數的目的是什么,它有什么作用?

class DilConv(nn.Module):
    def __init__(self, in_C, out_C, kernel_size, stride, padding, affine=True):
        super(DilConv, self).__init__()
        self.ops = nn.Sequential(
          nn.ReLU(),
          nn.Conv2d(in_C, in_C, kernel_size=kernel_size, stride=stride, 
                    padding=padding, dilation=2, groups=in_C, bias=False),
          nn.Conv2d(in_C, out_C, kernel_size=1, bias=False),
          nn.BatchNorm2d(out_C, affine=affine))
        
    def forward(self, x):
        return self.ops(x)

如果您查看BatchNorm2d的文檔頁面,您將閱讀:

affine – 一個 boolean 值,當設置為True時,該模塊具有可學習的仿射參數。 默認值: True

檢查基礎 class _NormBase上的源代碼,您將看到參數weightbias僅在參數affine設置為True時才定義 這些參數對應於文檔公式中的 gamma 和 beta。

暫無
暫無

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

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