跳转到内容

swanlab.register_callbacks

已弃用

swanlab.register_callbacks() 已被弃用,请使用 swanlab.merge_callbacks() 替代。

python
def register_callbacks(
    callbacks: CallbacksType,
) -> None:
参数类型描述
callbacksCallbacksType单个 Callback 对象或 Callback 对象列表。

介绍

使用 swanlab.register_callbacks() 注册回调函数,以在 SwanLab 的执行生命周期中调用。

TIP

register_callbacks 必须在 swanlab.init() 之前调用。如果运行已激活,调用会报错。

python
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.register_callbacks(MyCallback())

swanlab.init(...)

效果等价于通过 swanlab.init() 传入 callbacks 参数:

python
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.init(
    ...
    callbacks=MyCallback(),
)

场景:比如你使用时的是 SwanLab 与 Transformers 的集成,那么你要找到 swanlab.init() 是不容易的。那么,你可以在 trainer.train() 调用前,用 swanlab.merge_callbacks() 注册回调函数,实现插件的注入。

迁移方式

swanlab.register_callbacks() 替换为 swanlab.merge_callbacks()

python
# 之前(已弃用)
swanlab.register_callbacks([email_callback])

# 之后
swanlab.merge_callbacks([email_callback])

详细用法请参阅 merge_callbacks API 文档