nshtrainer 1.5.0__tar.gz → 1.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/PKG-INFO +1 -1
  2. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/pyproject.toml +1 -1
  3. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/log_epoch.py +55 -7
  4. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/README.md +0 -0
  5. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/.nshconfig.generated.json +0 -0
  6. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/__init__.py +0 -0
  7. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/_callback.py +0 -0
  8. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/_checkpoint/metadata.py +0 -0
  9. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/_checkpoint/saver.py +0 -0
  10. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/_experimental/__init__.py +0 -0
  11. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/_hf_hub.py +0 -0
  12. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/__init__.py +0 -0
  13. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/actsave.py +0 -0
  14. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/base.py +0 -0
  15. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/checkpoint/__init__.py +0 -0
  16. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/checkpoint/_base.py +0 -0
  17. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/checkpoint/best_checkpoint.py +0 -0
  18. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/checkpoint/last_checkpoint.py +0 -0
  19. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/checkpoint/on_exception_checkpoint.py +0 -0
  20. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/debug_flag.py +0 -0
  21. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/directory_setup.py +0 -0
  22. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/distributed_prediction_writer.py +0 -0
  23. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/early_stopping.py +0 -0
  24. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/ema.py +0 -0
  25. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/finite_checks.py +0 -0
  26. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/gradient_skipping.py +0 -0
  27. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/interval.py +0 -0
  28. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/lr_monitor.py +0 -0
  29. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/metric_validation.py +0 -0
  30. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/norm_logging.py +0 -0
  31. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/print_table.py +0 -0
  32. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/rlp_sanity_checks.py +0 -0
  33. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/shared_parameters.py +0 -0
  34. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/timer.py +0 -0
  35. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/wandb_upload_code.py +0 -0
  36. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/callbacks/wandb_watch.py +0 -0
  37. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/.gitattributes +0 -0
  38. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/__init__.py +0 -0
  39. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/_checkpoint/__init__.py +0 -0
  40. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/_checkpoint/metadata/__init__.py +0 -0
  41. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/_hf_hub/__init__.py +0 -0
  42. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/__init__.py +0 -0
  43. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/actsave/__init__.py +0 -0
  44. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/base/__init__.py +0 -0
  45. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/checkpoint/__init__.py +0 -0
  46. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/checkpoint/_base/__init__.py +0 -0
  47. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/checkpoint/best_checkpoint/__init__.py +0 -0
  48. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/checkpoint/last_checkpoint/__init__.py +0 -0
  49. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/checkpoint/on_exception_checkpoint/__init__.py +0 -0
  50. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/debug_flag/__init__.py +0 -0
  51. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/directory_setup/__init__.py +0 -0
  52. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/distributed_prediction_writer/__init__.py +0 -0
  53. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/early_stopping/__init__.py +0 -0
  54. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/ema/__init__.py +0 -0
  55. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/finite_checks/__init__.py +0 -0
  56. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/gradient_skipping/__init__.py +0 -0
  57. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/log_epoch/__init__.py +0 -0
  58. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/lr_monitor/__init__.py +0 -0
  59. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/metric_validation/__init__.py +0 -0
  60. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/norm_logging/__init__.py +0 -0
  61. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/print_table/__init__.py +0 -0
  62. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/rlp_sanity_checks/__init__.py +0 -0
  63. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/shared_parameters/__init__.py +0 -0
  64. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/timer/__init__.py +0 -0
  65. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/wandb_upload_code/__init__.py +0 -0
  66. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/callbacks/wandb_watch/__init__.py +0 -0
  67. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/loggers/__init__.py +0 -0
  68. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/loggers/actsave/__init__.py +0 -0
  69. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/loggers/base/__init__.py +0 -0
  70. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/loggers/csv/__init__.py +0 -0
  71. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/loggers/tensorboard/__init__.py +0 -0
  72. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/loggers/wandb/__init__.py +0 -0
  73. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/lr_scheduler/__init__.py +0 -0
  74. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/lr_scheduler/base/__init__.py +0 -0
  75. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/lr_scheduler/linear_warmup_cosine/__init__.py +0 -0
  76. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/lr_scheduler/reduce_lr_on_plateau/__init__.py +0 -0
  77. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/metrics/__init__.py +0 -0
  78. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/metrics/_config/__init__.py +0 -0
  79. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/nn/__init__.py +0 -0
  80. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/nn/mlp/__init__.py +0 -0
  81. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/nn/nonlinearity/__init__.py +0 -0
  82. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/nn/rng/__init__.py +0 -0
  83. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/optimizer/__init__.py +0 -0
  84. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/profiler/__init__.py +0 -0
  85. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/profiler/_base/__init__.py +0 -0
  86. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/profiler/advanced/__init__.py +0 -0
  87. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/profiler/pytorch/__init__.py +0 -0
  88. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/profiler/simple/__init__.py +0 -0
  89. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/__init__.py +0 -0
  90. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/_config/__init__.py +0 -0
  91. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/accelerator/__init__.py +0 -0
  92. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/plugin/__init__.py +0 -0
  93. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/plugin/base/__init__.py +0 -0
  94. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/plugin/environment/__init__.py +0 -0
  95. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/plugin/io/__init__.py +0 -0
  96. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/plugin/layer_sync/__init__.py +0 -0
  97. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/plugin/precision/__init__.py +0 -0
  98. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/strategy/__init__.py +0 -0
  99. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/trainer/trainer/__init__.py +0 -0
  100. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/util/__init__.py +0 -0
  101. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/util/_environment_info/__init__.py +0 -0
  102. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/util/config/__init__.py +0 -0
  103. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/util/config/dtype/__init__.py +0 -0
  104. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/configs/util/config/duration/__init__.py +0 -0
  105. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/data/__init__.py +0 -0
  106. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/data/balanced_batch_sampler.py +0 -0
  107. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/data/datamodule.py +0 -0
  108. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/data/transform.py +0 -0
  109. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/loggers/__init__.py +0 -0
  110. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/loggers/actsave.py +0 -0
  111. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/loggers/base.py +0 -0
  112. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/loggers/csv.py +0 -0
  113. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/loggers/tensorboard.py +0 -0
  114. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/loggers/wandb.py +0 -0
  115. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/lr_scheduler/__init__.py +0 -0
  116. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/lr_scheduler/base.py +0 -0
  117. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/lr_scheduler/linear_warmup_cosine.py +0 -0
  118. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/lr_scheduler/reduce_lr_on_plateau.py +0 -0
  119. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/metrics/__init__.py +0 -0
  120. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/metrics/_config.py +0 -0
  121. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/model/__init__.py +0 -0
  122. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/model/base.py +0 -0
  123. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/model/mixins/callback.py +0 -0
  124. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/model/mixins/debug.py +0 -0
  125. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/model/mixins/logger.py +0 -0
  126. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/nn/__init__.py +0 -0
  127. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/nn/mlp.py +0 -0
  128. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/nn/module_dict.py +0 -0
  129. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/nn/module_list.py +0 -0
  130. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/nn/nonlinearity.py +0 -0
  131. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/nn/rng.py +0 -0
  132. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/optimizer.py +0 -0
  133. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/profiler/__init__.py +0 -0
  134. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/profiler/_base.py +0 -0
  135. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/profiler/advanced.py +0 -0
  136. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/profiler/pytorch.py +0 -0
  137. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/profiler/simple.py +0 -0
  138. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/__init__.py +0 -0
  139. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/_config.py +0 -0
  140. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/_distributed_prediction_result.py +0 -0
  141. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/_log_hparams.py +0 -0
  142. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/_runtime_callback.py +0 -0
  143. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/accelerator.py +0 -0
  144. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/plugin/__init__.py +0 -0
  145. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/plugin/base.py +0 -0
  146. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/plugin/environment.py +0 -0
  147. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/plugin/io.py +0 -0
  148. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/plugin/layer_sync.py +0 -0
  149. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/plugin/precision.py +0 -0
  150. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/signal_connector.py +0 -0
  151. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/strategy.py +0 -0
  152. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/trainer/trainer.py +0 -0
  153. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/_environment_info.py +0 -0
  154. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/bf16.py +0 -0
  155. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/code_upload.py +0 -0
  156. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/config/__init__.py +0 -0
  157. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/config/dtype.py +0 -0
  158. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/config/duration.py +0 -0
  159. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/environment.py +0 -0
  160. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/path.py +0 -0
  161. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/seed.py +0 -0
  162. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/slurm.py +0 -0
  163. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/typed.py +0 -0
  164. {nshtrainer-1.5.0 → nshtrainer-1.5.1}/src/nshtrainer/util/typing_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: nshtrainer
3
- Version: 1.5.0
3
+ Version: 1.5.1
4
4
  Summary:
5
5
  Author: Nima Shoghi
6
6
  Author-email: nimashoghi@gmail.com
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "nshtrainer"
3
- version = "1.5.0"
3
+ version = "1.5.1"
4
4
  description = ""
5
5
  authors = [{ name = "Nima Shoghi", email = "nimashoghi@gmail.com" }]
6
6
  requires-python = ">=3.10,<4.0"
@@ -35,7 +35,7 @@ class LogEpochCallbackConfig(CallbackConfigBase):
35
35
  yield LogEpochCallback(self)
36
36
 
37
37
 
38
- def _worker_fn(
38
+ def _log_on_step(
39
39
  trainer: Trainer,
40
40
  pl_module: LightningModule,
41
41
  num_batches_prop: str,
@@ -75,6 +75,19 @@ def _worker_fn(
75
75
  pl_module.log(metric_name, epoch, on_step=True, on_epoch=False)
76
76
 
77
77
 
78
+ def _log_on_epoch(
79
+ trainer: Trainer,
80
+ pl_module: LightningModule,
81
+ *,
82
+ metric_name: str,
83
+ ):
84
+ if trainer.logger is None:
85
+ return
86
+
87
+ epoch = pl_module.current_epoch + 1
88
+ pl_module.log(metric_name, epoch, on_step=False, on_epoch=True)
89
+
90
+
78
91
  class LogEpochCallback(Callback):
79
92
  def __init__(self, config: LogEpochCallbackConfig):
80
93
  super().__init__()
@@ -85,16 +98,27 @@ class LogEpochCallback(Callback):
85
98
  def on_train_batch_start(
86
99
  self, trainer: Trainer, pl_module: LightningModule, batch: Any, batch_idx: int
87
100
  ):
88
- if trainer.logger is None or not self.config.train:
101
+ if not self.config.train:
89
102
  return
90
103
 
91
- _worker_fn(
104
+ _log_on_step(
92
105
  trainer,
93
106
  pl_module,
94
107
  "num_training_batches",
95
108
  metric_name=self.config.metric_name,
96
109
  )
97
110
 
111
+ @override
112
+ def on_train_epoch_end(self, trainer: Trainer, pl_module: LightningModule):
113
+ if not self.config.train:
114
+ return
115
+
116
+ _log_on_epoch(
117
+ trainer,
118
+ pl_module,
119
+ metric_name=self.config.metric_name,
120
+ )
121
+
98
122
  @override
99
123
  def on_validation_batch_start(
100
124
  self,
@@ -104,10 +128,10 @@ class LogEpochCallback(Callback):
104
128
  batch_idx: int,
105
129
  dataloader_idx: int = 0,
106
130
  ) -> None:
107
- if trainer.logger is None or not self.config.val:
131
+ if not self.config.val:
108
132
  return
109
133
 
110
- _worker_fn(
134
+ _log_on_step(
111
135
  trainer,
112
136
  pl_module,
113
137
  "num_val_batches",
@@ -115,6 +139,19 @@ class LogEpochCallback(Callback):
115
139
  metric_name=self.config.metric_name,
116
140
  )
117
141
 
142
+ @override
143
+ def on_validation_epoch_end(
144
+ self, trainer: Trainer, pl_module: LightningModule
145
+ ) -> None:
146
+ if not self.config.val:
147
+ return
148
+
149
+ _log_on_epoch(
150
+ trainer,
151
+ pl_module,
152
+ metric_name=self.config.metric_name,
153
+ )
154
+
118
155
  @override
119
156
  def on_test_batch_start(
120
157
  self,
@@ -124,13 +161,24 @@ class LogEpochCallback(Callback):
124
161
  batch_idx: int,
125
162
  dataloader_idx: int = 0,
126
163
  ) -> None:
127
- if trainer.logger is None or not self.config.test:
164
+ if not self.config.test:
128
165
  return
129
166
 
130
- _worker_fn(
167
+ _log_on_step(
131
168
  trainer,
132
169
  pl_module,
133
170
  "num_test_batches",
134
171
  dataloader_idx=dataloader_idx,
135
172
  metric_name=self.config.metric_name,
136
173
  )
174
+
175
+ @override
176
+ def on_test_epoch_end(self, trainer: Trainer, pl_module: LightningModule) -> None:
177
+ if not self.config.test:
178
+ return
179
+
180
+ _log_on_epoch(
181
+ trainer,
182
+ pl_module,
183
+ metric_name=self.config.metric_name,
184
+ )
File without changes