| from torch import nn | |
| import torch | |
| class FiLM(nn.Module): | |
| def __init__(self): | |
| super().__init__() | |
| def forward(self, x, gamma, beta): | |
| return gamma * x + beta | |
| class BTFBroadcastedFiLM(nn.Module): | |
| def __init__(self): | |
| super().__init__() | |
| self.film = FiLM() | |
| def forward(self, x, gamma, beta): | |
| gamma = gamma[None, None, None, :] | |
| beta = beta[None, None, None, :] | |
| return self.film(x, gamma, beta) | |