in models/generator.py [0:0]
def __init__(self, n_layers=8, channels=256, out_channel=3, z_dim=128, omega_coord=10, omega_dir=4, skips=[4]):
super().__init__()
self.skips = skips
self.from_coords = PositionalEncoding(in_dim=3, frequency_bands=omega_coord)
self.from_dirs = PositionalEncoding(in_dim=3, frequency_bands=omega_dir)
self.n_layers = n_layers
self.layers = nn.ModuleList(
[ModulationLinear(in_channel=self.from_coords.out_dim, out_channel=channels, z_dim=z_dim)]
)
for i in range(1, n_layers):
if i in skips:
in_channels = channels + self.from_coords.out_dim
else:
in_channels = channels
self.layers.append(ModulationLinear(in_channel=in_channels, out_channel=channels, z_dim=z_dim))
self.fc_alpha = ModulationLinear(
in_channel=channels, out_channel=1, z_dim=z_dim, demodulate=False, activate=False
)
self.fc_feat = ModulationLinear(in_channel=channels, out_channel=channels, z_dim=z_dim)
self.fc_viewdir = ModulationLinear(
in_channel=channels + self.from_dirs.out_dim, out_channel=channels, z_dim=z_dim
)
self.fc_out = ModulationLinear(
in_channel=channels, out_channel=out_channel, z_dim=z_dim, demodulate=False, activate=False
)