merge_callbacks
python
def merge_callbacks(
callbacks: CallbacksType,
) -> None:| 参数 | 类型 | 描述 |
|---|---|---|
callbacks | CallbacksType | 单个 Callback 对象或 Callback 对象列表,将被合并到全局回调注册表中。 |
介绍
swanlab.merge_callbacks() 将自定义回调函数合并到 SwanLab 的全局回调注册表中。这允许你在调用 swanlab.init() 之前注册回调,实现在无法直接访问 swanlab.init() 的框架(例如与 Transformers 集成时)中注入插件。
TIP
merge_callbacks 必须在 swanlab.init() 之前调用。如果运行已激活时调用,会抛出 RuntimeError。
用法
单个回调
python
import swanlab
from swanlab import Callback
class MyCallback(Callback):
@property
def name(self):
return "my_callback"
def on_run_initialized(self, run_dir, path, **kwargs):
print("Run initialized!")
swanlab.merge_callbacks(MyCallback())
swanlab.init(project="my-project")多个回调
传入列表可一次性合并多个回调:
python
import swanlab
from swanlab import Callback
class MyCallback(Callback):
@property
def name(self):
return "my_callback"
def on_run_initialized(self, run_dir, path, **kwargs):
print("Run initialized!")
class AnotherCallback(Callback):
@property
def name(self):
return "another_callback"
def on_run_initialized(self, run_dir, path, **kwargs):
print("Run initialized by another callback!")
swanlab.merge_callbacks([MyCallback(), AnotherCallback()])
swanlab.init(project="my-project")回调生命周期
SwanLab 回调通过继承 Callback 基类实现。常用的钩子方法包括:
on_run_initialized(run_dir, path, **kwargs)— 实验初始化时调用。on_run_finished(state, error)— 实验结束时调用。