(self,
in_size,
hidden_size,
out_size,
hidden_layers=3,
weight_scale=1.0,
bias=True,
output_act=False,
frequency=(128, 128),
quantization_interval=2*np.pi, # assumes data range [-.5,.5]
centered=True,
input_scales=None,
output_layers=None,
is_sdf=False,
reuse_filters=False,
**kwargs)
| 160 | |
| 161 | class BACON(MFNBase): |
| 162 | def __init__(self, |
| 163 | in_size, |
| 164 | hidden_size, |
| 165 | out_size, |
| 166 | hidden_layers=3, |
| 167 | weight_scale=1.0, |
| 168 | bias=True, |
| 169 | output_act=False, |
| 170 | frequency=(128, 128), |
| 171 | quantization_interval=2*np.pi, # assumes data range [-.5,.5] |
| 172 | centered=True, |
| 173 | input_scales=None, |
| 174 | output_layers=None, |
| 175 | is_sdf=False, |
| 176 | reuse_filters=False, |
| 177 | **kwargs): |
| 178 | |
| 179 | super().__init__(hidden_size, out_size, hidden_layers, |
| 180 | weight_scale, bias, output_act) |
| 181 | |
| 182 | self.quantization_interval = quantization_interval |
| 183 | self.hidden_layers = hidden_layers |
| 184 | self.hidden_size = hidden_size |
| 185 | self.centered = centered |
| 186 | self.frequency = frequency |
| 187 | self.is_sdf = is_sdf |
| 188 | self.reuse_filters = reuse_filters |
| 189 | self.in_size = in_size |
| 190 | |
| 191 | # we need to multiply by this to be able to fit the signal |
| 192 | input_scale = [round((np.pi * freq / (hidden_layers + 1)) |
| 193 | / quantization_interval) * quantization_interval for freq in frequency] |
| 194 | |
| 195 | self.filters = nn.ModuleList([ |
| 196 | FourierLayer(in_size, hidden_size, input_scale, |
| 197 | quantization_interval=quantization_interval) |
| 198 | for i in range(hidden_layers + 1)]) |
| 199 | |
| 200 | print(self) |
| 201 | |
| 202 | def forward_mfn(self, input_dict): |
| 203 | if 'coords' in input_dict: |
nothing calls this directly
no test coverage detected