| 159 | |
| 160 | class ADAIN(nn.Module): |
| 161 | def __init__(self, norm_nc, feature_nc): |
| 162 | super().__init__() |
| 163 | |
| 164 | self.param_free_norm = nn.InstanceNorm2d(norm_nc, affine=False) |
| 165 | |
| 166 | nhidden = 128 |
| 167 | use_bias = True |
| 168 | |
| 169 | self.mlp_shared = nn.Sequential( |
| 170 | nn.Linear(feature_nc, nhidden, bias=use_bias), |
| 171 | nn.ReLU() |
| 172 | ) |
| 173 | self.mlp_gamma = nn.Linear(nhidden, norm_nc, bias=use_bias) |
| 174 | self.mlp_beta = nn.Linear(nhidden, norm_nc, bias=use_bias) |
| 175 | |
| 176 | def forward(self, x, feature): |
| 177 | # Part 1. generate parameter-free normalized activations |