| 154 | |
| 155 | |
| 156 | def get_embedder(multires, i=0): |
| 157 | import torch.nn as nn |
| 158 | if i == -1: |
| 159 | return nn.Identity(), 3 |
| 160 | |
| 161 | embed_kwargs = { |
| 162 | 'include_input' : True, |
| 163 | 'input_dims' : 3, |
| 164 | 'max_freq_log2' : multires-1, |
| 165 | 'num_freqs' : multires, |
| 166 | 'log_sampling' : True, |
| 167 | 'periodic_fns' : [torch.sin, torch.cos], |
| 168 | } |
| 169 | |
| 170 | embedder_obj = Embedder(**embed_kwargs) |
| 171 | embed = lambda x, eo=embedder_obj : eo.embed(x) |
| 172 | return embed, embedder_obj.out_dim |
| 173 | |
| 174 | class APOPMeter(): |
| 175 | def __init__(self) -> None: |