(self)
| 179 | |
| 180 | @overwatch.rank_zero_only |
| 181 | def push(self) -> str: |
| 182 | # Note :: Raw Loss is an Average over Gradient Accumulation Steps --> No Smoothing! |
| 183 | loss_raw = torch.stack(list(self.state["loss_raw"])).mean().item() |
| 184 | loss = torch.stack(list(self.state["loss"])).mean().item() |
| 185 | step_time, lr = np.mean(list(self.state["step_time"])), self.state["lr"][-1] |
| 186 | status = self.get_status(loss) |
| 187 | |
| 188 | # Fire to Trackers |
| 189 | prefix = self.stage.capitalize() |
| 190 | self.log( |
| 191 | self.global_step, |
| 192 | metrics={ |
| 193 | f"{prefix}/Step": self.global_step, |
| 194 | f"{prefix}/Loss": loss, |
| 195 | f"{prefix}/Loss (Raw)": loss_raw, |
| 196 | f"{prefix}/Learning Rate": lr, |
| 197 | f"{prefix}/Step Time": step_time, |
| 198 | }, |
| 199 | ) |
| 200 | return status |
| 201 | |
| 202 | def finalize(self) -> str: |
| 203 | for tracker in self.trackers: |
no test coverage detected