BoHuangLab commited on
Commit
6e7dc7d
·
verified ·
1 Parent(s): 7fb4074

Add loguru/tqdm/torchdiffeq; make wandb optional

Browse files
Files changed (2) hide show
  1. cell_fm/logging/loggers.py +7 -2
  2. requirements.txt +5 -0
cell_fm/logging/loggers.py CHANGED
@@ -9,7 +9,12 @@ from loguru import logger
9
  from cell_fm.utils.dist_utils import is_master_node
10
  from transformers import TrainerCallback
11
 
12
- import wandb # isort:skip
 
 
 
 
 
13
 
14
  handlers = {}
15
 
@@ -65,7 +70,7 @@ class MetricLogger(object):
65
  log_data[k] = log_data[k].detach().item()
66
 
67
  logger.info(" | ".join([f"{k}={v:.4g}" for k, v in log_data.items()]))
68
- if wandb.run is not None:
69
  # Add prefix
70
  if prefix:
71
  log_data = {f"{prefix}/{k}": v for k, v in log_data.items()}
 
9
  from cell_fm.utils.dist_utils import is_master_node
10
  from transformers import TrainerCallback
11
 
12
+ # wandb is only used by the training callback below. The demo Space never trains,
13
+ # so it is optional here rather than a required install.
14
+ try:
15
+ import wandb # isort:skip
16
+ except ImportError: # pragma: no cover
17
+ wandb = None
18
 
19
  handlers = {}
20
 
 
70
  log_data[k] = log_data[k].detach().item()
71
 
72
  logger.info(" | ".join([f"{k}={v:.4g}" for k, v in log_data.items()]))
73
+ if wandb is not None and wandb.run is not None:
74
  # Add prefix
75
  if prefix:
76
  log_data = {f"{prefix}/{k}": v for k, v in log_data.items()}
requirements.txt CHANGED
@@ -16,6 +16,11 @@ einops==0.8.0
16
  huggingface_hub>=0.24.6
17
  gradio>=4.44.0
18
 
 
 
 
 
 
19
  # flash-attn is deliberately NOT installed. ESM-C falls back to its pure-torch
20
  # rotary when the package is absent (esm/models/esmc.py: is_flash_attn_available),
21
  # and the two paths were verified bit-identical -- same AUC, same AAC, same 256/256
 
16
  huggingface_hub>=0.24.6
17
  gradio>=4.44.0
18
 
19
+ # pulled in by the vendored cell_fm modules
20
+ loguru
21
+ tqdm
22
+ torchdiffeq # ODE solver behind the flow-matching sampler
23
+
24
  # flash-attn is deliberately NOT installed. ESM-C falls back to its pure-torch
25
  # rotary when the package is absent (esm/models/esmc.py: is_flash_attn_available),
26
  # and the two paths were verified bit-identical -- same AUC, same AAC, same 256/256