MCPcopy Index your code
hub / github.com/ActiveVisionLab/DFNet / get_embedder

Function get_embedder

script/models/nerfw.py:166–217  ·  view source on GitHub ↗
(multires, i=0, reduce_mode=-1, epochToMaxFreq=-1)

Source from the content-addressed store, hash-verified

164
165
166def get_embedder(multires, i=0, reduce_mode=-1, epochToMaxFreq=-1):
167 if i == -1:
168 return nn.Identity(), 3
169
170 if reduce_mode == 0:
171 # reduce embedding
172 embed_kwargs = {
173 'include_input' : True,
174 'input_dims' : 3,
175 'max_freq_log2' : (multires-1)//2,
176 'num_freqs' : multires//2,
177 'log_sampling' : True,
178 'periodic_fns' : [torch.sin, torch.cos],
179 }
180 elif reduce_mode == 1:
181 # remove embedding
182 embed_kwargs = {
183 'include_input' : True,
184 'input_dims' : 3,
185 'max_freq_log2' : 0,
186 'num_freqs' : 0,
187 'log_sampling' : True,
188 'periodic_fns' : [torch.sin, torch.cos],
189 }
190 elif reduce_mode == 2:
191 # DNeRF embedding
192 embed_kwargs = {
193 'include_input' : True,
194 'input_dims' : 3,
195 'max_freq_log2' : multires-1,
196 'num_freqs' : multires,
197 'log_sampling' : True,
198 'periodic_fns' : [torch.sin, torch.cos],
199 }
200 else:
201 # paper default
202 embed_kwargs = {
203 'include_input' : True,
204 'input_dims' : 3,
205 'max_freq_log2' : multires-1,
206 'num_freqs' : multires,
207 'log_sampling' : True,
208 'periodic_fns' : [torch.sin, torch.cos],
209 }
210
211 embedder_obj = Embedder(**embed_kwargs)
212 if reduce_mode == 2:
213 embedder_obj.update_N(epochToMaxFreq)
214 embed = lambda x, epoch, eo=embedder_obj: eo.embed_DNeRF(x, epoch)
215 else:
216 embed = lambda x, eo=embedder_obj : eo.embed(x)
217 return embed, embedder_obj.out_dim, embedder_obj# 63 for pos, 27 for view dir
218
219# Model
220class NeRFW(nn.Module):

Callers 1

create_nerfFunction · 0.70

Calls 4

update_NMethod · 0.95
EmbedderClass · 0.70
embed_DNeRFMethod · 0.45
embedMethod · 0.45

Tested by

no test coverage detected