[英]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
上的源代碼,您將看到參數weight
和bias
僅在參數affine
設置為True
時才定義。 這些參數對應於文檔公式中的 gamma 和 beta。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.