Spaces:
Running on Zero
Running on Zero
Add loguru/tqdm/torchdiffeq; make wandb optional
Browse files- cell_fm/logging/loggers.py +7 -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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|