xax 0.2.9__tar.gz → 0.2.11__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 (72) hide show
  1. {xax-0.2.9/xax.egg-info → xax-0.2.11}/PKG-INFO +1 -1
  2. {xax-0.2.9 → xax-0.2.11}/xax/__init__.py +1 -1
  3. {xax-0.2.9 → xax-0.2.11}/xax/task/loggers/tensorboard.py +4 -1
  4. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/train.py +5 -6
  5. {xax-0.2.9 → xax-0.2.11/xax.egg-info}/PKG-INFO +1 -1
  6. {xax-0.2.9 → xax-0.2.11}/LICENSE +0 -0
  7. {xax-0.2.9 → xax-0.2.11}/MANIFEST.in +0 -0
  8. {xax-0.2.9 → xax-0.2.11}/README.md +0 -0
  9. {xax-0.2.9 → xax-0.2.11}/pyproject.toml +0 -0
  10. {xax-0.2.9 → xax-0.2.11}/setup.cfg +0 -0
  11. {xax-0.2.9 → xax-0.2.11}/setup.py +0 -0
  12. {xax-0.2.9 → xax-0.2.11}/xax/core/__init__.py +0 -0
  13. {xax-0.2.9 → xax-0.2.11}/xax/core/conf.py +0 -0
  14. {xax-0.2.9 → xax-0.2.11}/xax/core/state.py +0 -0
  15. {xax-0.2.9 → xax-0.2.11}/xax/nn/__init__.py +0 -0
  16. {xax-0.2.9 → xax-0.2.11}/xax/nn/embeddings.py +0 -0
  17. {xax-0.2.9 → xax-0.2.11}/xax/nn/equinox.py +0 -0
  18. {xax-0.2.9 → xax-0.2.11}/xax/nn/export.py +0 -0
  19. {xax-0.2.9 → xax-0.2.11}/xax/nn/functions.py +0 -0
  20. {xax-0.2.9 → xax-0.2.11}/xax/nn/geom.py +0 -0
  21. {xax-0.2.9 → xax-0.2.11}/xax/nn/losses.py +0 -0
  22. {xax-0.2.9 → xax-0.2.11}/xax/nn/norm.py +0 -0
  23. {xax-0.2.9 → xax-0.2.11}/xax/nn/parallel.py +0 -0
  24. {xax-0.2.9 → xax-0.2.11}/xax/nn/ssm.py +0 -0
  25. {xax-0.2.9 → xax-0.2.11}/xax/py.typed +0 -0
  26. {xax-0.2.9 → xax-0.2.11}/xax/requirements-dev.txt +0 -0
  27. {xax-0.2.9 → xax-0.2.11}/xax/requirements.txt +0 -0
  28. {xax-0.2.9 → xax-0.2.11}/xax/task/__init__.py +0 -0
  29. {xax-0.2.9 → xax-0.2.11}/xax/task/base.py +0 -0
  30. {xax-0.2.9 → xax-0.2.11}/xax/task/launchers/__init__.py +0 -0
  31. {xax-0.2.9 → xax-0.2.11}/xax/task/launchers/base.py +0 -0
  32. {xax-0.2.9 → xax-0.2.11}/xax/task/launchers/cli.py +0 -0
  33. {xax-0.2.9 → xax-0.2.11}/xax/task/launchers/single_process.py +0 -0
  34. {xax-0.2.9 → xax-0.2.11}/xax/task/logger.py +0 -0
  35. {xax-0.2.9 → xax-0.2.11}/xax/task/loggers/__init__.py +0 -0
  36. {xax-0.2.9 → xax-0.2.11}/xax/task/loggers/callback.py +0 -0
  37. {xax-0.2.9 → xax-0.2.11}/xax/task/loggers/json.py +0 -0
  38. {xax-0.2.9 → xax-0.2.11}/xax/task/loggers/state.py +0 -0
  39. {xax-0.2.9 → xax-0.2.11}/xax/task/loggers/stdout.py +0 -0
  40. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/__init__.py +0 -0
  41. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/artifacts.py +0 -0
  42. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/checkpointing.py +0 -0
  43. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/compile.py +0 -0
  44. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/cpu_stats.py +0 -0
  45. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/data_loader.py +0 -0
  46. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/gpu_stats.py +0 -0
  47. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/logger.py +0 -0
  48. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/process.py +0 -0
  49. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/runnable.py +0 -0
  50. {xax-0.2.9 → xax-0.2.11}/xax/task/mixins/step_wrapper.py +0 -0
  51. {xax-0.2.9 → xax-0.2.11}/xax/task/script.py +0 -0
  52. {xax-0.2.9 → xax-0.2.11}/xax/task/task.py +0 -0
  53. {xax-0.2.9 → xax-0.2.11}/xax/utils/__init__.py +0 -0
  54. {xax-0.2.9 → xax-0.2.11}/xax/utils/data/__init__.py +0 -0
  55. {xax-0.2.9 → xax-0.2.11}/xax/utils/data/collate.py +0 -0
  56. {xax-0.2.9 → xax-0.2.11}/xax/utils/debugging.py +0 -0
  57. {xax-0.2.9 → xax-0.2.11}/xax/utils/experiments.py +0 -0
  58. {xax-0.2.9 → xax-0.2.11}/xax/utils/jax.py +0 -0
  59. {xax-0.2.9 → xax-0.2.11}/xax/utils/jaxpr.py +0 -0
  60. {xax-0.2.9 → xax-0.2.11}/xax/utils/logging.py +0 -0
  61. {xax-0.2.9 → xax-0.2.11}/xax/utils/numpy.py +0 -0
  62. {xax-0.2.9 → xax-0.2.11}/xax/utils/profile.py +0 -0
  63. {xax-0.2.9 → xax-0.2.11}/xax/utils/pytree.py +0 -0
  64. {xax-0.2.9 → xax-0.2.11}/xax/utils/tensorboard.py +0 -0
  65. {xax-0.2.9 → xax-0.2.11}/xax/utils/text.py +0 -0
  66. {xax-0.2.9 → xax-0.2.11}/xax/utils/types/__init__.py +0 -0
  67. {xax-0.2.9 → xax-0.2.11}/xax/utils/types/frozen_dict.py +0 -0
  68. {xax-0.2.9 → xax-0.2.11}/xax/utils/types/hashable_array.py +0 -0
  69. {xax-0.2.9 → xax-0.2.11}/xax.egg-info/SOURCES.txt +0 -0
  70. {xax-0.2.9 → xax-0.2.11}/xax.egg-info/dependency_links.txt +0 -0
  71. {xax-0.2.9 → xax-0.2.11}/xax.egg-info/requires.txt +0 -0
  72. {xax-0.2.9 → xax-0.2.11}/xax.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xax
3
- Version: 0.2.9
3
+ Version: 0.2.11
4
4
  Summary: A library for fast Jax experimentation
5
5
  Home-page: https://github.com/kscalelabs/xax
6
6
  Author: Benjamin Bolte
@@ -12,7 +12,7 @@ and running the update script:
12
12
  python -m scripts.update_api --inplace
13
13
  """
14
14
 
15
- __version__ = "0.2.9"
15
+ __version__ = "0.2.11"
16
16
 
17
17
  # This list shouldn't be modified by hand; instead, run the update script.
18
18
  __all__ = [
@@ -32,7 +32,7 @@ class TensorboardLogger(LoggerImpl):
32
32
  flush_seconds: float = 10.0,
33
33
  wait_seconds: float = 0.0,
34
34
  start_in_subprocess: bool = True,
35
- use_localhost: bool = False,
35
+ use_localhost: bool | None = None,
36
36
  log_interval_seconds: float = 10.0,
37
37
  ) -> None:
38
38
  """Defines a logger which writes to Tensorboard.
@@ -49,6 +49,9 @@ class TensorboardLogger(LoggerImpl):
49
49
  """
50
50
  super().__init__(log_interval_seconds)
51
51
 
52
+ if use_localhost is None:
53
+ use_localhost = os.environ.get("USE_TENSORBOARD_LOCALHOST", "0") == "1"
54
+
52
55
  self.log_directory = Path(run_directory).expanduser().resolve() / subdirectory
53
56
  self.wait_seconds = wait_seconds
54
57
  self.start_in_subprocess = start_in_subprocess
@@ -121,7 +121,7 @@ class ValidStepTimer:
121
121
  self.last_valid_step = state.num_steps.item()
122
122
 
123
123
  def is_valid_step(self, state: State) -> bool:
124
- if state.num_steps < self.valid_first_n_steps:
124
+ if state.num_steps < self.valid_first_n_steps and state.num_valid_steps < self.valid_first_n_steps:
125
125
  return True
126
126
 
127
127
  if self.last_valid_time is None or self.last_valid_step is None:
@@ -272,7 +272,7 @@ class TrainMixin(
272
272
  v, secondary = v
273
273
  else:
274
274
  secondary = False
275
- self.logger.log_scalar(k, v, namespace=" timers", secondary=secondary)
275
+ self.logger.log_scalar(k, v, namespace="🕒 timers", secondary=secondary)
276
276
 
277
277
  def log_step(
278
278
  self,
@@ -361,7 +361,6 @@ class TrainMixin(
361
361
  model = self.get_model(key)
362
362
  state = State.init_state()
363
363
 
364
- self.log_model_size(model)
365
364
  if not load_optimizer:
366
365
  return model, state
367
366
 
@@ -684,9 +683,6 @@ class TrainMixin(
684
683
  self.logger.log_file("config.yaml", self.config_str(self.config, use_cli=False))
685
684
  self.logger.log_file("info.json", get_info_json())
686
685
 
687
- def log_model_size(self, model: PyTree) -> None:
688
- logger.info("Model size: %s", f"{get_pytree_param_count(model):,}")
689
-
690
686
  def model_partition_fn(self, item: Any) -> bool: # noqa: ANN401
691
687
  return eqx.is_inexact_array(item)
692
688
 
@@ -832,6 +828,9 @@ class TrainMixin(
832
828
 
833
829
  key, model_key = jax.random.split(key)
834
830
  model, optimizer, opt_state, state = self.load_initial_state(model_key, load_optimizer=True)
831
+ logger.info("Model size: %s", f"{get_pytree_param_count(model):,}")
832
+ logger.info("Optimizer size: %s", f"{get_pytree_param_count(optimizer):,}")
833
+
835
834
  state = self.on_training_start(state)
836
835
 
837
836
  def on_exit() -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xax
3
- Version: 0.2.9
3
+ Version: 0.2.11
4
4
  Summary: A library for fast Jax experimentation
5
5
  Home-page: https://github.com/kscalelabs/xax
6
6
  Author: Benjamin Bolte
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
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