set optimizer and lr scheduler used in training
(self, lr, min_lr_ratio=0.01)
| 127 | return {"pts": pts_b, "sdf": sdf_b} |
| 128 | |
| 129 | def _set_optimizer(self, lr, min_lr_ratio=0.01): |
| 130 | """set optimizer and lr scheduler used in training""" |
| 131 | lr_decay = min_lr_ratio ** (1 / self.n_iters) |
| 132 | if self.lr_split > 0: |
| 133 | self.optimizer = optim.AdamW([ |
| 134 | {"params": self.net.geo_parameters(), "lr": lr * self.lr_split}, |
| 135 | {"params": self.net.tex_parameters(), "lr": lr}, |
| 136 | ], lr) |
| 137 | else: |
| 138 | self.optimizer = optim.AdamW(self.net.parameters(), lr) |
| 139 | self.scheduler = optim.lr_scheduler.ExponentialLR(self.optimizer, lr_decay) |
| 140 | |
| 141 | def save_ckpt(self, name): |
| 142 | """save checkpoint for future restore""" |
no test coverage detected