| 369 | self._opacity = optimizable_tensors["opacity"] |
| 370 | |
| 371 | def replace_tensor_to_optimizer(self, tensor, name): |
| 372 | optimizable_tensors = {} |
| 373 | for group in self.optimizer.param_groups: |
| 374 | if group["name"] == name: |
| 375 | stored_state = self.optimizer.state.get(group['params'][0], None) |
| 376 | stored_state["exp_avg"] = torch.zeros_like(tensor) |
| 377 | stored_state["exp_avg_sq"] = torch.zeros_like(tensor) |
| 378 | |
| 379 | del self.optimizer.state[group['params'][0]] |
| 380 | group["params"][0] = nn.Parameter(tensor.requires_grad_(True)) |
| 381 | self.optimizer.state[group['params'][0]] = stored_state |
| 382 | |
| 383 | optimizable_tensors[group["name"]] = group["params"][0] |
| 384 | return optimizable_tensors |
| 385 | |
| 386 | def _prune_optimizer(self, mask): |
| 387 | optimizable_tensors = {} |