nshtrainer 0.10.18__tar.gz → 0.11.0__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.
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/PKG-INFO +7 -4
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/pyproject.toml +6 -1
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/_checkpoint/metadata.py +4 -4
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/actsave.py +1 -15
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/model/modules/logger.py +1 -9
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/README.md +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/_checkpoint/loader.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/_checkpoint/saver.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/_experimental/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/_experimental/flops/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/_experimental/flops/flop_counter.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/_experimental/flops/module_tracker.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/_throughput_monitor_callback.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/base.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/early_stopping.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/ema.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/finite_checks.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/gradient_skipping.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/interval.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/latest_epoch_checkpoint.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/log_epoch.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/model_checkpoint.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/norm_logging.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/on_exception_checkpoint.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/print_table.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/throughput_monitor.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/timer.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/wandb_watch.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/data/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/data/balanced_batch_sampler.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/data/transform.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/_experimental.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/actsave.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/callbacks.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/config.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/data.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/log.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/lr_scheduler.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/model.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/nn.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/optimizer.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/runner.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/snapshot.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/snoop.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/trainer.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/typecheck.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/ll/util.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/lr_scheduler/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/lr_scheduler/_base.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/lr_scheduler/linear_warmup_cosine.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/lr_scheduler/reduce_lr_on_plateau.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/metrics/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/metrics/_config.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/model/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/model/base.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/model/config.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/model/modules/callback.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/model/modules/debug.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/model/modules/distributed.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/model/modules/profiler.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/model/modules/rlp_sanity_checks.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/model/modules/shared_parameters.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/nn/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/nn/mlp.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/nn/module_dict.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/nn/module_list.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/nn/nonlinearity.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/optimizer.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/runner.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/scripts/find_packages.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/trainer/__init__.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/trainer/_runtime_callback.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/trainer/checkpoint_connector.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/trainer/signal_connector.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/trainer/trainer.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/util/_environment_info.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/util/environment.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/util/seed.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/util/slurm.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/util/typed.py +0 -0
- {nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/util/typing_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nshtrainer
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Nima Shoghi
|
|
6
6
|
Author-email: nimashoghi@gmail.com
|
|
@@ -9,7 +9,8 @@ Classifier: Programming Language :: Python :: 3
|
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.10
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
-
|
|
12
|
+
Provides-Extra: extra
|
|
13
|
+
Requires-Dist: GitPython ; extra == "extra"
|
|
13
14
|
Requires-Dist: lightning
|
|
14
15
|
Requires-Dist: nshconfig
|
|
15
16
|
Requires-Dist: nshrunner
|
|
@@ -17,10 +18,12 @@ Requires-Dist: nshutils
|
|
|
17
18
|
Requires-Dist: numpy
|
|
18
19
|
Requires-Dist: psutil
|
|
19
20
|
Requires-Dist: pytorch-lightning
|
|
21
|
+
Requires-Dist: tensorboard ; extra == "extra"
|
|
20
22
|
Requires-Dist: torch
|
|
21
|
-
Requires-Dist: torchmetrics
|
|
23
|
+
Requires-Dist: torchmetrics ; extra == "extra"
|
|
22
24
|
Requires-Dist: typing-extensions
|
|
23
|
-
Requires-Dist:
|
|
25
|
+
Requires-Dist: wandb ; extra == "extra"
|
|
26
|
+
Requires-Dist: wrapt ; extra == "extra"
|
|
24
27
|
Description-Content-Type: text/markdown
|
|
25
28
|
|
|
26
29
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "nshtrainer"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.11.0"
|
|
4
4
|
description = ""
|
|
5
5
|
authors = ["Nima Shoghi <nimashoghi@gmail.com>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -19,6 +19,8 @@ pytorch-lightning = "*"
|
|
|
19
19
|
torchmetrics = { version = "*", optional = true }
|
|
20
20
|
wrapt = { version = "*", optional = true }
|
|
21
21
|
GitPython = { version = "*", optional = true }
|
|
22
|
+
wandb = { version = "*", optional = true }
|
|
23
|
+
tensorboard = { version = "*", optional = true }
|
|
22
24
|
|
|
23
25
|
[tool.poetry.group.dev.dependencies]
|
|
24
26
|
pyright = "^1.1.372"
|
|
@@ -40,3 +42,6 @@ reportPrivateImportUsage = false
|
|
|
40
42
|
|
|
41
43
|
[tool.ruff.lint]
|
|
42
44
|
ignore = ["F722", "F821", "E731", "E741"]
|
|
45
|
+
|
|
46
|
+
[tool.poetry.extras]
|
|
47
|
+
extra = ["torchmetrics", "wrapt", "GitPython", "wandb", "tensorboard"]
|
|
@@ -92,7 +92,7 @@ def _write_checkpoint_metadata(
|
|
|
92
92
|
except Exception as e:
|
|
93
93
|
log.warning(f"Failed to write metadata to {checkpoint_path}: {e}")
|
|
94
94
|
else:
|
|
95
|
-
log.
|
|
95
|
+
log.debug(f"Checkpoint metadata written to {checkpoint_path}")
|
|
96
96
|
|
|
97
97
|
# Write the hparams to the checkpoint directory
|
|
98
98
|
try:
|
|
@@ -101,7 +101,7 @@ def _write_checkpoint_metadata(
|
|
|
101
101
|
except Exception as e:
|
|
102
102
|
log.warning(f"Failed to write hparams to {checkpoint_path}: {e}")
|
|
103
103
|
else:
|
|
104
|
-
log.
|
|
104
|
+
log.debug(f"Checkpoint metadata written to {checkpoint_path}")
|
|
105
105
|
|
|
106
106
|
|
|
107
107
|
def _remove_checkpoint_metadata(checkpoint_path: Path):
|
|
@@ -112,7 +112,7 @@ def _remove_checkpoint_metadata(checkpoint_path: Path):
|
|
|
112
112
|
except Exception as e:
|
|
113
113
|
log.warning(f"Failed to remove {path}: {e}")
|
|
114
114
|
else:
|
|
115
|
-
log.
|
|
115
|
+
log.debug(f"Removed {path}")
|
|
116
116
|
|
|
117
117
|
|
|
118
118
|
def _link_checkpoint_metadata(checkpoint_path: Path, linked_checkpoint_path: Path):
|
|
@@ -133,7 +133,7 @@ def _link_checkpoint_metadata(checkpoint_path: Path, linked_checkpoint_path: Pat
|
|
|
133
133
|
except Exception as e:
|
|
134
134
|
log.warning(f"Failed to link {path} to {linked_path}: {e}")
|
|
135
135
|
else:
|
|
136
|
-
log.
|
|
136
|
+
log.debug(f"Linked {path} to {linked_path}")
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
def _checkpoint_sort_key_fn(key: Callable[[CheckpointMetadata, Path], Any]):
|
|
@@ -4,15 +4,11 @@ from typing import Literal
|
|
|
4
4
|
|
|
5
5
|
from lightning.pytorch import LightningModule, Trainer
|
|
6
6
|
from lightning.pytorch.callbacks.callback import Callback
|
|
7
|
+
from nshutils import ActSave
|
|
7
8
|
from typing_extensions import TypeAlias, override
|
|
8
9
|
|
|
9
10
|
from .base import CallbackConfigBase
|
|
10
11
|
|
|
11
|
-
try:
|
|
12
|
-
from nshutils import ActSave # type: ignore
|
|
13
|
-
except ImportError:
|
|
14
|
-
ActSave = None
|
|
15
|
-
|
|
16
12
|
Stage: TypeAlias = Literal["train", "validation", "test", "predict"]
|
|
17
13
|
|
|
18
14
|
|
|
@@ -51,11 +47,6 @@ class ActSaveCallback(Callback):
|
|
|
51
47
|
if not self.config:
|
|
52
48
|
return
|
|
53
49
|
|
|
54
|
-
if ActSave is None:
|
|
55
|
-
raise ImportError(
|
|
56
|
-
"ActSave is not installed. Please install nshutils to use the ActSaveCallback."
|
|
57
|
-
)
|
|
58
|
-
|
|
59
50
|
context = ActSave.enabled(self.save_dir)
|
|
60
51
|
context.__enter__()
|
|
61
52
|
self._enabled_context = context
|
|
@@ -77,11 +68,6 @@ class ActSaveCallback(Callback):
|
|
|
77
68
|
if not self.config:
|
|
78
69
|
return
|
|
79
70
|
|
|
80
|
-
if ActSave is None:
|
|
81
|
-
raise ImportError(
|
|
82
|
-
"ActSave is not installed. Please install nshutils to use the ActSaveCallback."
|
|
83
|
-
)
|
|
84
|
-
|
|
85
71
|
# If we have an active context manager for this stage, exit it
|
|
86
72
|
if active_contexts := self._active_contexts.get(stage):
|
|
87
73
|
active_contexts.__exit__(None, None, None)
|
|
@@ -9,16 +9,12 @@ import torchmetrics
|
|
|
9
9
|
from lightning.pytorch import LightningDataModule, LightningModule
|
|
10
10
|
from lightning.pytorch.utilities.types import _METRIC
|
|
11
11
|
from lightning_utilities.core.rank_zero import rank_zero_warn
|
|
12
|
+
from nshutils import ActSave
|
|
12
13
|
from typing_extensions import override
|
|
13
14
|
|
|
14
15
|
from ...util.typing_utils import mixin_base_type
|
|
15
16
|
from ..config import BaseConfig
|
|
16
17
|
|
|
17
|
-
try:
|
|
18
|
-
from nshutils import ActSave # type: ignore
|
|
19
|
-
except ImportError:
|
|
20
|
-
ActSave = None
|
|
21
|
-
|
|
22
18
|
|
|
23
19
|
@dataclass(frozen=True, kw_only=True)
|
|
24
20
|
class _LogContext:
|
|
@@ -162,10 +158,6 @@ class LoggerLightningModuleMixin(LoggerModuleMixin, mixin_base_type(LightningMod
|
|
|
162
158
|
if not hparams.trainer.logging.actsave_logged_metrics:
|
|
163
159
|
return
|
|
164
160
|
|
|
165
|
-
if ActSave is None:
|
|
166
|
-
rank_zero_warn("ActSave is not available, skipping logging of metrics")
|
|
167
|
-
return
|
|
168
|
-
|
|
169
161
|
ActSave.save(
|
|
170
162
|
lambda: {
|
|
171
163
|
f"logger.{name}": lambda: value.compute()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/_experimental/flops/module_tracker.py
RENAMED
|
File without changes
|
|
File without changes
|
{nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/_throughput_monitor_callback.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/latest_epoch_checkpoint.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/callbacks/on_exception_checkpoint.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/lr_scheduler/linear_warmup_cosine.py
RENAMED
|
File without changes
|
{nshtrainer-0.10.18 → nshtrainer-0.11.0}/src/nshtrainer/lr_scheduler/reduce_lr_on_plateau.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|