mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-12 10:55:57 +08:00
Add option to start training paused (#3420)
This commit is contained in:
1 parent
e2a0915e56
commit
e7b7dc9c6f
3 files changed
+19
-7
No files matched your search
@@ -86,6 +86,8 @@ class TrainerConfig(ExperimentConfig):
|
||||
"""Optionally log gradients during training"""
|
||||
gradient_accumulation_steps: Dict[str, int] = field(default_factory=lambda: {})
|
||||
"""Number of steps to accumulate gradients over. Contains a mapping of {param_group:num}"""
|
||||
start_paused: bool = False
|
||||
"""Whether to start the training in a paused state."""
|
||||
|
||||
|
||||
class Trainer:
|
||||
@@ -121,7 +123,9 @@ class Trainer:
|
||||
self.device += f":{local_rank}"
|
||||
self.mixed_precision: bool = self.config.mixed_precision
|
||||
self.use_grad_scaler: bool = self.mixed_precision or self.config.use_grad_scaler
|
||||
self.training_state: Literal["training", "paused", "completed"] = "training"
|
||||
self.training_state: Literal["training", "paused", "completed"] = (
|
||||
"paused" if self.config.start_paused else "training"
|
||||
)
|
||||
self.gradient_accumulation_steps: DefaultDict = defaultdict(lambda: 1)
|
||||
self.gradient_accumulation_steps.update(self.config.gradient_accumulation_steps)
|
||||
|
||||
@@ -361,7 +365,7 @@ class Trainer:
|
||||
assert self.viewer_state and self.pipeline.datamanager.train_dataset
|
||||
self.viewer_state.init_scene(
|
||||
train_dataset=self.pipeline.datamanager.train_dataset,
|
||||
train_state="training",
|
||||
train_state=self.training_state,
|
||||
eval_dataset=self.pipeline.datamanager.eval_dataset,
|
||||
)
|
||||
|
||||
|
||||
@@ -103,8 +103,10 @@ class Viewer:
|
||||
self.output_type_changed = True
|
||||
self.output_split_type_changed = True
|
||||
self.step = 0
|
||||
self.train_btn_state: Literal["training", "paused", "completed"] = "training"
|
||||
self._prev_train_state: Literal["training", "paused", "completed"] = "training"
|
||||
self.train_btn_state: Literal["training", "paused", "completed"] = (
|
||||
"training" if self.trainer is None else self.trainer.training_state
|
||||
)
|
||||
self._prev_train_state: Literal["training", "paused", "completed"] = self.train_btn_state
|
||||
self.last_move_time = 0
|
||||
# track the camera index that last being clicked
|
||||
self.current_camera_idx = 0
|
||||
@@ -174,7 +176,11 @@ class Viewer:
|
||||
)
|
||||
self.resume_train.on_click(lambda _: self.toggle_pause_button())
|
||||
self.resume_train.on_click(lambda han: self._toggle_training_state(han))
|
||||
self.resume_train.visible = False
|
||||
if self.train_btn_state == "training":
|
||||
self.resume_train.visible = False
|
||||
else:
|
||||
self.pause_train.visible = False
|
||||
|
||||
# Add buttons to toggle training image visibility
|
||||
self.hide_images = self.viser_server.gui.add_button(
|
||||
label="Hide Train Cams", disabled=False, icon=viser.Icon.EYE_OFF, color=None
|
||||
|
||||
@@ -116,8 +116,10 @@ class ViewerLegacyState:
|
||||
self.output_type_changed = True
|
||||
self.output_split_type_changed = True
|
||||
self.step = 0
|
||||
self.train_btn_state: Literal["training", "paused", "completed"] = "training"
|
||||
self._prev_train_state: Literal["training", "paused", "completed"] = "training"
|
||||
self.train_btn_state: Literal["training", "paused", "completed"] = (
|
||||
"training" if self.trainer is None else self.trainer.training_state
|
||||
)
|
||||
self._prev_train_state: Literal["training", "paused", "completed"] = self.train_btn_state
|
||||
|
||||
self.camera_message = None
|
||||
|
||||
|
||||
Reference in new issue
Block a user