| 734 | |
| 735 | class Spade(nn.Module): |
| 736 | def __init__(self, hidden_channels, out_channels): |
| 737 | super(Spade, self).__init__() |
| 738 | self.param_free_norm = nn.BatchNorm2d(out_channels, affine=False) |
| 739 | self.mlp_shared = nn.Sequential( |
| 740 | nn.Conv2d(hidden_channels, hidden_channels, kernel_size=3, padding=1), |
| 741 | nn.ReLU(True) |
| 742 | ) |
| 743 | self.mlp_gamma = nn.Conv2d(hidden_channels, out_channels, kernel_size=3, padding=1) |
| 744 | self.mlp_beta = nn.Conv2d(hidden_channels, out_channels, kernel_size=3, padding=1) |
| 745 | |
| 746 | def forward(self, x, edge): |
| 747 | normalized = self.param_free_norm(x) |