nshtrainer 1.0.0b51__tar.gz → 1.0.0b53__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-1.0.0b51 → nshtrainer-1.0.0b53}/PKG-INFO +1 -1
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/pyproject.toml +1 -1
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/_checkpoint/metadata.py +2 -2
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/_checkpoint/saver.py +2 -2
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/metric_validation.py +6 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/_config.py +1 -3
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/path.py +42 -1
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/README.md +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/.nshconfig.generated.json +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/_callback.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/_directory.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/_experimental/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/_hf_hub.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/actsave.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/base.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/checkpoint/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/checkpoint/_base.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/checkpoint/best_checkpoint.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/checkpoint/last_checkpoint.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/checkpoint/on_exception_checkpoint.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/debug_flag.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/directory_setup.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/early_stopping.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/ema.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/finite_checks.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/gradient_skipping.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/interval.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/log_epoch.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/lr_monitor.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/norm_logging.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/print_table.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/rlp_sanity_checks.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/shared_parameters.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/timer.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/wandb_upload_code.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/wandb_watch.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/.gitattributes +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/_checkpoint/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/_checkpoint/metadata/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/_directory/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/_hf_hub/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/actsave/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/base/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/checkpoint/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/checkpoint/_base/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/checkpoint/best_checkpoint/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/checkpoint/last_checkpoint/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/checkpoint/on_exception_checkpoint/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/debug_flag/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/directory_setup/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/early_stopping/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/ema/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/finite_checks/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/gradient_skipping/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/log_epoch/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/lr_monitor/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/metric_validation/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/norm_logging/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/print_table/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/rlp_sanity_checks/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/shared_parameters/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/timer/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/wandb_upload_code/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/wandb_watch/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/loggers/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/loggers/actsave/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/loggers/base/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/loggers/csv/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/loggers/tensorboard/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/loggers/wandb/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/lr_scheduler/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/lr_scheduler/base/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/lr_scheduler/linear_warmup_cosine/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/lr_scheduler/reduce_lr_on_plateau/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/metrics/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/metrics/_config/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/nn/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/nn/mlp/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/nn/nonlinearity/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/optimizer/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/profiler/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/profiler/_base/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/profiler/advanced/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/profiler/pytorch/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/profiler/simple/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/_config/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/accelerator/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/plugin/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/plugin/base/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/plugin/environment/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/plugin/io/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/plugin/layer_sync/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/plugin/precision/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/strategy/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/trainer/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/util/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/util/_environment_info/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/util/config/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/util/config/dtype/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/util/config/duration/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/data/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/data/balanced_batch_sampler.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/data/datamodule.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/data/transform.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/loggers/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/loggers/actsave.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/loggers/base.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/loggers/csv.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/loggers/tensorboard.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/loggers/wandb.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/lr_scheduler/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/lr_scheduler/base.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/lr_scheduler/linear_warmup_cosine.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/lr_scheduler/reduce_lr_on_plateau.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/metrics/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/metrics/_config.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/model/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/model/base.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/model/mixins/callback.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/model/mixins/debug.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/model/mixins/logger.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/nn/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/nn/mlp.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/nn/module_dict.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/nn/module_list.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/nn/nonlinearity.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/optimizer.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/profiler/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/profiler/_base.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/profiler/advanced.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/profiler/pytorch.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/profiler/simple.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/_runtime_callback.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/accelerator.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/plugin/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/plugin/base.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/plugin/environment.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/plugin/io.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/plugin/layer_sync.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/plugin/precision.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/signal_connector.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/strategy.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/trainer/trainer.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/_environment_info.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/bf16.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/config/__init__.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/config/dtype.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/config/duration.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/environment.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/seed.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/slurm.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/typed.py +0 -0
- {nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/util/typing_utils.py +0 -0
@@ -11,7 +11,7 @@ import numpy as np
|
|
11
11
|
import torch
|
12
12
|
|
13
13
|
from ..util._environment_info import EnvironmentConfig
|
14
|
-
from ..util.path import compute_file_checksum, try_symlink_or_copy
|
14
|
+
from ..util.path import compute_file_checksum, path_exists, try_symlink_or_copy
|
15
15
|
|
16
16
|
if TYPE_CHECKING:
|
17
17
|
from ..trainer.trainer import Trainer
|
@@ -154,7 +154,7 @@ def remove_checkpoint_metadata(checkpoint_path: Path):
|
|
154
154
|
def remove_checkpoint_metadata_link(ckpt_link_path: Path):
|
155
155
|
path = _metadata_path(ckpt_link_path)
|
156
156
|
# If the metadata does not exist, we can safely ignore this
|
157
|
-
if not path
|
157
|
+
if not path_exists(path, follow_symlinks=False):
|
158
158
|
# This is EXTREMELY important here
|
159
159
|
# Otherwise, we've already deleted the file that the symlink
|
160
160
|
# used to point to, so this always returns False
|
@@ -7,7 +7,7 @@ from pathlib import Path
|
|
7
7
|
|
8
8
|
from lightning.pytorch import Trainer
|
9
9
|
|
10
|
-
from ..util.path import try_symlink_or_copy
|
10
|
+
from ..util.path import path_exists, try_symlink_or_copy
|
11
11
|
from .metadata import (
|
12
12
|
link_checkpoint_metadata,
|
13
13
|
remove_checkpoint_metadata,
|
@@ -29,7 +29,7 @@ def link_checkpoint(
|
|
29
29
|
|
30
30
|
if remove_existing:
|
31
31
|
try:
|
32
|
-
if linkpath
|
32
|
+
if path_exists(linkpath, follow_symlinks=False):
|
33
33
|
# follow_symlinks=False is EXTREMELY important here
|
34
34
|
# Otherwise, we've already deleted the file that the symlink
|
35
35
|
# used to point to, so this always returns False
|
@@ -77,6 +77,12 @@ class MetricValidationCallback(Callback):
|
|
77
77
|
case _:
|
78
78
|
assert_never(self.config.error_behavior)
|
79
79
|
|
80
|
+
@override
|
81
|
+
def on_sanity_check_end(self, trainer, pl_module):
|
82
|
+
super().on_sanity_check_end(trainer, pl_module)
|
83
|
+
|
84
|
+
self._check_metrics(trainer)
|
85
|
+
|
80
86
|
@override
|
81
87
|
def on_validation_end(self, trainer, pl_module):
|
82
88
|
super().on_validation_end(trainer, pl_module)
|
@@ -698,9 +698,7 @@ class TrainerConfig(C.Config):
|
|
698
698
|
- The trainer is running in fast_dev_run mode.
|
699
699
|
- The trainer is running a sanity check (which happens before starting the training routine).
|
700
700
|
"""
|
701
|
-
auto_validate_metrics: MetricValidationCallbackConfig | None =
|
702
|
-
MetricValidationCallbackConfig()
|
703
|
-
)
|
701
|
+
auto_validate_metrics: MetricValidationCallbackConfig | None = None
|
704
702
|
"""If enabled, will automatically validate the metrics before starting the training routine."""
|
705
703
|
|
706
704
|
lightning_kwargs: LightningTrainerKwargs = LightningTrainerKwargs()
|
@@ -1,5 +1,6 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
+
import errno
|
3
4
|
import hashlib
|
4
5
|
import logging
|
5
6
|
import os
|
@@ -98,7 +99,7 @@ def try_symlink_or_copy(
|
|
98
99
|
# If the link already exists, remove it
|
99
100
|
if remove_existing:
|
100
101
|
try:
|
101
|
-
if link_path
|
102
|
+
if path_exists(link_path, follow_symlinks=False):
|
102
103
|
# follow_symlinks=False is EXTREMELY important here
|
103
104
|
# Otherwise, we've already deleted the file that the symlink
|
104
105
|
# used to point to, so this always returns False
|
@@ -132,3 +133,43 @@ def try_symlink_or_copy(
|
|
132
133
|
else:
|
133
134
|
log.debug(f"Created symlink or copied {file_path} to {link_path}")
|
134
135
|
return True
|
136
|
+
|
137
|
+
|
138
|
+
_WINERROR_NOT_READY = 21 # drive exists but is not accessible
|
139
|
+
_WINERROR_INVALID_NAME = 123 # fix for bpo-35306
|
140
|
+
_WINERROR_CANT_RESOLVE_FILENAME = 1921 # broken symlink pointing to itself
|
141
|
+
|
142
|
+
# EBADF - guard against macOS `stat` throwing EBADF
|
143
|
+
_IGNORED_ERRNOS = (errno.ENOENT, errno.ENOTDIR, errno.EBADF, errno.ELOOP)
|
144
|
+
|
145
|
+
_IGNORED_WINERRORS = (
|
146
|
+
_WINERROR_NOT_READY,
|
147
|
+
_WINERROR_INVALID_NAME,
|
148
|
+
_WINERROR_CANT_RESOLVE_FILENAME,
|
149
|
+
)
|
150
|
+
|
151
|
+
|
152
|
+
def _ignore_error(exception):
|
153
|
+
return (
|
154
|
+
getattr(exception, "errno", None) in _IGNORED_ERRNOS
|
155
|
+
or getattr(exception, "winerror", None) in _IGNORED_WINERRORS
|
156
|
+
)
|
157
|
+
|
158
|
+
|
159
|
+
def path_exists(path: Path, follow_symlinks: bool = True):
|
160
|
+
"""
|
161
|
+
Whether this path exists.
|
162
|
+
|
163
|
+
This method normally follows symlinks; to check whether a symlink exists,
|
164
|
+
add the argument follow_symlinks=False.
|
165
|
+
"""
|
166
|
+
try:
|
167
|
+
path.stat(follow_symlinks=follow_symlinks)
|
168
|
+
except OSError as e:
|
169
|
+
if not _ignore_error(e):
|
170
|
+
raise
|
171
|
+
return False
|
172
|
+
except ValueError:
|
173
|
+
# Non-encodable path
|
174
|
+
return False
|
175
|
+
return True
|
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-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/checkpoint/best_checkpoint.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/callbacks/checkpoint/last_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
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/_checkpoint/metadata/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/actsave/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/base/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/checkpoint/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/debug_flag/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/ema/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/log_epoch/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/lr_monitor/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/print_table/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/timer/__init__.py
RENAMED
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/callbacks/wandb_watch/__init__.py
RENAMED
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/loggers/actsave/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/loggers/tensorboard/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/loggers/wandb/__init__.py
RENAMED
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/lr_scheduler/base/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/metrics/_config/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/nn/nonlinearity/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/profiler/_base/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/profiler/advanced/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/profiler/pytorch/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/profiler/simple/__init__.py
RENAMED
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/_config/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/accelerator/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/plugin/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/plugin/base/__init__.py
RENAMED
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/plugin/io/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/strategy/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/trainer/trainer/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/util/config/dtype/__init__.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/configs/util/config/duration/__init__.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
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/src/nshtrainer/lr_scheduler/linear_warmup_cosine.py
RENAMED
File without changes
|
{nshtrainer-1.0.0b51 → nshtrainer-1.0.0b53}/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
|
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
|