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

Function get_embedder

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

Source from the content-addressed store, hash-verified

131
132
133def get_embedder(multires, i=0, reduce_mode=-1, epochToMaxFreq=-1):
134 if i == -1:
135 return nn.Identity(), 3
136
137 if reduce_mode == 0:
138 # reduce embedding
139 embed_kwargs = {
140 'include_input' : True,
141 'input_dims' : 3,
142 'max_freq_log2' : (multires-1)//2,
143 'num_freqs' : multires//2,
144 'log_sampling' : True,
145 'periodic_fns' : [torch.sin, torch.cos],
146 }
147 elif reduce_mode == 1:
148 # remove embedding
149 embed_kwargs = {
150 'include_input' : True,
151 'input_dims' : 3,
152 'max_freq_log2' : 0,
153 'num_freqs' : 0,
154 'log_sampling' : True,
155 'periodic_fns' : [torch.sin, torch.cos],
156 }
157 elif reduce_mode == 2:
158 # DNeRF embedding
159 embed_kwargs = {
160 'include_input' : True,
161 'input_dims' : 3,
162 'max_freq_log2' : multires-1,
163 'num_freqs' : multires,
164 'log_sampling' : True,
165 'periodic_fns' : [torch.sin, torch.cos],
166 }
167 else:
168 # paper default
169 embed_kwargs = {
170 'include_input' : True,
171 'input_dims' : 3,
172 'max_freq_log2' : multires-1,
173 'num_freqs' : multires,
174 'log_sampling' : True,
175 'periodic_fns' : [torch.sin, torch.cos],
176 }
177
178 embedder_obj = Embedder(**embed_kwargs)
179 if reduce_mode == 2:
180 embedder_obj.update_N(epochToMaxFreq)
181 embed = lambda x, epoch, eo=embedder_obj: eo.embed_DNeRF(x, epoch)
182 else:
183 embed = lambda x, eo=embedder_obj : eo.embed(x)
184 return embed, embedder_obj.out_dim, embedder_obj# 63 for pos, 27 for view dir
185
186# Model
187class NeRF(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