Skip to content

Commit fc4fc5c

Browse files
authored
Properly reset train state after render lock in viewer (nerfstudio-project#3486)
* properly reset train state after render locK * finally block
1 parent d2f2ad9 commit fc4fc5c

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

nerfstudio/viewer/render_state_machine.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ def _render_img(self, camera_state: CameraState):
148148
device=self.viewer.get_model().device,
149149
)
150150
self.viewer.get_model().set_background(background_color)
151+
was_training = self.viewer.get_model().training
151152
self.viewer.get_model().eval()
152153
step = self.viewer.step
153154
try:
@@ -168,9 +169,10 @@ def _render_img(self, camera_state: CameraState):
168169
with torch.no_grad(), viewer_utils.SetTrace(self.check_interrupt):
169170
outputs = self.viewer.get_model().get_outputs_for_camera(camera, obb_box=obb)
170171
except viewer_utils.IOChangeException:
171-
self.viewer.get_model().train()
172172
raise
173-
self.viewer.get_model().train()
173+
finally:
174+
if was_training:
175+
self.viewer.get_model().train()
174176
num_rays = (camera.height * camera.width).item()
175177
if self.viewer.control_panel.layer_depth:
176178
if isinstance(self.viewer.get_model(), SplatfactoModel):

0 commit comments

Comments
 (0)