-
Notifications
You must be signed in to change notification settings - Fork 186
Description
确认项
问题描述
swanlab/integration/pytorch_lightning.py中定义的self._swanlab_init中不包含任何(pytorch_lightning)resume参数:
self._swanlab_init: Dict[str, Any] = {
"project": project,
"workspace": workspace,
"experiment_name": experiment_name,
"description": description,
"logdir": logdir,
"mode": mode,
"tags": tags,
}
self._swanlab_init.update(**kwargs)
self._project = self._swanlab_init.get("project")
self._workspace = self._swanlab_init.get("workspace")
self._experiment_name = self._swanlab_init.get("experiment_name")
self._description = self._swanlab_init.get("decsription")
self._logdir = self._swanlab_init.get("logdir")
self._mode = self._swanlab_init.get("mode"),在下面调用init的时候传入不含resume的参数:self._experiment = swanlab.init(**self._swanlab_init)
而运行的时候调用swanlab/data/sdk.py中的SwanLabInitializer.init的时候resume默认为None:resume: Union[Literal['must', 'allow', 'never'], bool] = None,
因为pytorch_lightning中会默认传入id,所以会触发下面几行代码段错误 : resume = resume or 'never'
if resume == 'never':
# 不允许传递 id
if id is not None:
raise RuntimeError("You can't pass id when resume=never or resume=False."
导致pytorch_lightning会报错You can't pass id when resume=never or resume=False
wandb中wandb/integration/lightning/fabric/logger.py相应的地方是这样写的: self._wandb_init: Dict[str, Any] = {
"name": name,
"project": project,
"dir": save_dir or dir,
"id": version or id,
"resume": "allow",
"anonymous": ("allow" if anonymous else None),
}
不知道这两种写法哪种好
必须的复现代码
from swanlab.integration.pytorch_lightning import SwanLabLogger
swanlab_logger = SwanLabLogger(
project="swanlab_example35",
experiment_name="example_experiment35",
id='tt',
#resume=False
)
print(swanlab_logger.experiment)错误信息
RuntimeError Traceback (most recent call last)
Cell In[1], [line 8](vscode-notebook-cell:?execution_count=1&line=8)
1 from swanlab.integration.pytorch_lightning import SwanLabLogger
2 swanlab_logger = SwanLabLogger(
3 project="swanlab_example35",
4 experiment_name="example_experiment35",
5 id='tt',
6 #resume=False
7 )
----> [8](vscode-notebook-cell:?execution_count=1&line=8) print(swanlab_logger.experiment)
File ~/install/micromamba/envs/bg_dev/lib/python3.12/site-packages/lightning_fabric/loggers/logger.py:118, in rank_zero_experiment.<locals>.experiment(self)
116 if rank_zero_only.rank > 0:
117 return _DummyExperiment()
--> [118](https://vscode-remote+ssh-002dremote-002b172-002e18-002e1-002e17.vscode-resource.vscode-cdn.net/dev_code_old/~/install/micromamba/envs/bg_dev/lib/python3.12/site-packages/lightning_fabric/loggers/logger.py:118) return fn(self)
File ~/install/micromamba/envs/bg_dev/lib/python3.12/site-packages/swanlab/integration/pytorch_lightning.py:105, in SwanLabLogger.experiment(self)
102 swanlab.config["FRAMEWORK"] = "⚡️pytorch_lightning"
104 if swanlab.get_run() is None:
--> [105](https://vscode-remote+ssh-002dremote-002b172-002e18-002e1-002e17.vscode-resource.vscode-cdn.net/~/install/micromamba/envs/bg_dev/lib/python3.12/site-packages/swanlab/integration/pytorch_lightning.py:105) self._experiment = swanlab.init(**self._swanlab_init)
106 else:
107 rank_zero_warn(
108 "There is a swanlab experiment already in progress and newly created instances of `SwanLabLogger` will reuse"
109 " this experiment. If this is not desired, call `swanlab.finish()` before instantiating `SwanLabLogger`."
...
311 elif resume == 'must' or resume == 'allow':
312 # 只允许在 cloud 模式下使用 resume
313 if mode != "cloud":
RuntimeError: You can't pass id when resume=never or resume=False.