Log. Args: loss_dict: TODO. tag: TODO. **kwargs: Additional keyword arguments.
(
self,
loss_dict: dict = None,
tag="train",
**kwargs,
)
| 846 | model.train() |
| 847 | |
| 848 | def log( |
| 849 | self, |
| 850 | loss_dict: dict = None, |
| 851 | tag="train", |
| 852 | **kwargs, |
| 853 | ): |
| 854 | """Log. |
| 855 | |
| 856 | Args: |
| 857 | loss_dict: TODO. |
| 858 | tag: TODO. |
| 859 | **kwargs: Additional keyword arguments. |
| 860 | """ |
| 861 | loss = loss_dict["loss"].detach().cpu().item() |
| 862 | epoch = loss_dict["epoch"] |
| 863 | batch_idx = loss_dict["batch_idx"] |
| 864 | step_in_epoch = loss_dict["step_in_epoch"] |
| 865 | batch_total = loss_dict["batch_total"] |
| 866 | batch_num_epoch = loss_dict["batch_num_epoch"] |
| 867 | lr = loss_dict["lr"] |
| 868 | |
| 869 | speed_stats = loss_dict["speed_stats"] |
| 870 | stats = loss_dict["stats"] |
| 871 | data_split_i = loss_dict["data_split_i"] |
| 872 | data_split_num = loss_dict["data_split_num"] |
| 873 | log_step = loss_dict.get("log_step", None) |
| 874 | |
| 875 | if (batch_idx + 1) % self.log_interval == 0: |
| 876 | batch_idx = log_step if log_step is not None else batch_idx |
| 877 | gpu_info = ( |
| 878 | "GPU, memory: usage: {:.3f} GB, " |
| 879 | "peak: {:.3f} GB, " |
| 880 | "cache: {:.3f} GB, " |
| 881 | "cache_peak: {:.3f} GB".format( |
| 882 | torch.cuda.memory_allocated() / 1024 / 1024 / 1024, |
| 883 | torch.cuda.max_memory_allocated() / 1024 / 1024 / 1024, |
| 884 | torch.cuda.memory_reserved() / 1024 / 1024 / 1024, |
| 885 | torch.cuda.max_memory_reserved() / 1024 / 1024 / 1024, |
| 886 | ) |
| 887 | ) |
| 888 | |
| 889 | loss_avg_epoch = getattr(self, f"{tag}_loss_avg") |
| 890 | acc_avg_epoch = getattr(self, f"{tag}_acc_avg") |
| 891 | description = ( |
| 892 | f"{tag}, " |
| 893 | f"rank: {self.rank}, " |
| 894 | f"epoch: {epoch}/{self.max_epoch}, " |
| 895 | f"data_slice: {data_split_i}/{data_split_num}, " |
| 896 | f"step_in_slice: {batch_idx + 1}/{batch_num_epoch}, step_in_epoch: {step_in_epoch}, total step: {batch_total}, " |
| 897 | f"(loss_avg_rank: {loss:.3f}), " |
| 898 | f"(loss_avg_slice: {loss_avg_epoch:.3f}), " |
| 899 | f"(ppl_avg_slice: {math.exp(loss_avg_epoch):.3e}), " |
| 900 | f"(acc_avg_slice: {acc_avg_epoch:.3f}), " |
| 901 | f"(lr: {lr:.3e}), " |
| 902 | f"{[(k, round(v.detach().cpu().item(), 3)) for k, v in stats.items()]}, " |
| 903 | f"{speed_stats}, " |
| 904 | f"{gpu_info}" |
| 905 | ) |
no outgoing calls
no test coverage detected