| 99 | |
| 100 | |
| 101 | def build_callback(name, kwargs): |
| 102 | if name == "lr_monitor": |
| 103 | return LRMonitor() |
| 104 | elif name == "memory_monitor": |
| 105 | return MemoryMonitor() |
| 106 | elif name == "speed_monitor": |
| 107 | return SpeedMonitor( |
| 108 | window_size=kwargs.get("window_size", 1), gpu_flops_available=kwargs.get("gpu_flops_available", None) |
| 109 | ) |
| 110 | elif name == "runtime_estimator": |
| 111 | return RuntimeEstimator() |
| 112 | elif name == "optimizer_monitor": |
| 113 | return OptimizerMonitor( |
| 114 | log_optimizer_metrics=kwargs.get("log_optimizer_metrics", True), |
| 115 | ) |
| 116 | else: |
| 117 | raise ValueError(f"Not sure how to build callback: {name}") |
| 118 | |
| 119 | |
| 120 | def build_logger(name, kwargs): |