diff --git a/nerfstudio/configs/method_configs.py b/nerfstudio/configs/method_configs.py index e2e3707f2..ac1d64cbb 100644 --- a/nerfstudio/configs/method_configs.py +++ b/nerfstudio/configs/method_configs.py @@ -107,8 +107,8 @@ method_configs["lerf"] = TrainerConfig( ), optimizers={ "proposal_networks": { - "optimizer": RAdamOptimizerConfig(lr=1e-2, eps=1e-15), - "scheduler": ExponentialDecaySchedulerConfig(lr_final=1e-3, max_steps=30000), + "optimizer": AdamOptimizerConfig(lr=1e-2, eps=1e-15), + "scheduler": None, }, "fields": { "optimizer": RAdamOptimizerConfig(lr=1e-2, eps=1e-15), diff --git a/nerfstudio/fields/lerf_field.py b/nerfstudio/fields/lerf_field.py index 705344574..bd4d3cf02 100644 --- a/nerfstudio/fields/lerf_field.py +++ b/nerfstudio/fields/lerf_field.py @@ -27,10 +27,13 @@ class LERFField(Field): super().__init__() self.spatial_distortion = spatial_distortion - self.clip_encs = torch.nn.ModuleList([ - LERFField._get_encoding( 16, 128, 12, indim=3), - LERFField._get_encoding(128, 512, 12, indim=3) - ]) + self.clip_encs = torch.nn.ModuleList( + [ + # LERFField._get_encoding(16, 512, 16, indim=3) + LERFField._get_encoding(16, 128, 10, indim=3), + LERFField._get_encoding(128, 1024, 13, indim=3), + ] + ) tot_out_dims = sum([e.n_output_dims for e in self.clip_encs]) self.clip_net = tcnn.Network( diff --git a/nerfstudio/models/lerf.py b/nerfstudio/models/lerf.py index dd7a17ac6..7dcd77646 100644 --- a/nerfstudio/models/lerf.py +++ b/nerfstudio/models/lerf.py @@ -42,7 +42,6 @@ class LERFModel(NerfactoModel): self.network = self.kwargs["network"] self.lerf_field = LERFField(clip_n_dims=self.network.clip_n_dims) - # self.lerf_sampler = PDFSampler(num_samples=self.config.num_lerf_samples, histogram_padding=0.00) def get_max_across(self, ray_samples, weights, hashgrid_field, scales_shape, preset_scales=None): # TODO smoothen this out @@ -106,8 +105,12 @@ class LERFModel(NerfactoModel): lerf_field_outputs = self.lerf_field.get_outputs(lerf_samples, clip_scales) if self.training: - outputs['clip'] = self.renderer_clip(embeds=lerf_field_outputs[FieldHeadNames.CLIP], weights=lerf_weights.detach()) - outputs['dino'] = self.renderer_mean(embeds=lerf_field_outputs[FieldHeadNames.DINO], weights=lerf_weights.detach()) + outputs["clip"] = self.renderer_clip( + embeds=lerf_field_outputs[FieldHeadNames.CLIP], weights=lerf_weights.detach() + ) + outputs["dino"] = self.renderer_mean( + embeds=lerf_field_outputs[FieldHeadNames.DINO], weights=lerf_weights.detach() + ) if not self.training: max_across, best_scales = self.get_max_across(