小编Nia*_*amh的帖子

一起使用 nn.Linear() 和 nn.BatchNorm1d()

我不明白当数据是 3D 时 BatchNorm1d 如何工作(批量大小、H、W)。

例子

  • 输入大小:(2,50,70)
  • 层:nn.Linear(70,20)
  • 输出尺寸:(2,50,20)

如果我随后包含批量归一化层,则需要 num_features=50:

  • BN : nn.BatchNorm1d(50)

我不明白为什么不是 20:

  • BN : nn.BatchNorm1d(20)

示例1)

class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        self.bn11 = nn.BatchNorm1d(50)
        self.fc11 = nn.Linear(70,20)

    def forward(self, inputs):
        out = self.fc11(inputs)
        out = torch.relu(self.bn11(out))
        return out

model = Net()
inputs = torch.Tensor(2,50,70)
outputs = model(inputs)
Run Code Online (Sandbox Code Playgroud)

示例2)

class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        self.bn11 = nn.BatchNorm1d(20)
        self.fc11 = nn.Linear(70,20)

    def forward(self, inputs):
        out = self.fc11(inputs)
        out = torch.relu(self.bn11(out))
        return out

model = Net()
inputs = torch.Tensor(2,50,70) …
Run Code Online (Sandbox Code Playgroud)

pytorch

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

pytorch ×1