企业微信

如果你希望在训练完成/发生错误时,第一时间发送企业微信信息通知你,那么非常推荐你使用企业微信通知插件。
改进插件
SwanLab插件均为开源代码,你可以在Github源代码中查看,欢迎提交你的建议和PR!
准备工作
参考文档
- 在企业微信群中,点击右上角的 「···」-「添加群机器人」

- 在弹出的对话框中点击 「添加机器人」

- 继续点击 「新创建一个机器人」

- 为机器人添加名称,点击 「添加机器人」

- 企业微信的机器人只需要复制 「Webhook地址」 即可

基本用法
使用企业微信通知插件的方法非常简单,只需要初始化1个WXWorkCallback对象:
python
from swanlab.plugin.notification import WXWorkCallback
wxwork_callback = WXWorkCallback(
webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx",
)然后将wxwork_callback对象传入swanlab.init的callbacks参数中:
python
swanlab.init(callbacks=[wxwork_callback])这样,当训练完成/发生错误时(触发swanlab.finish()),你将会收到企业微信消息通知。

自由提醒
你还可以使用WXWorkCallback对象的send_msg方法,发送自定义的的企业微信消息。
这在提醒你某些指标达到某个阈值时非常有用!
python
if accuracy > 0.95:
# 自定义场景发送消息
wxwork_callback.send_msg(
content=f"Current Accuracy: {accuracy}", # 通知内容
)外部注册插件
如果你使用的是SwanLab与其他框架的集成,故而不太好找到swanlab.init,那么你可以使用swanlab.register_callbacks方法,在外部传入插件:
python
import swanlab
# 等价于 swanlab.init(callbaks=[...])
swanlab.register_callbacks([...])限制
企业微信通知插件的训练完成/异常通知,使用的是
SwanKitCallback的on_stop生命周期回调,所以如果你的进程被突然kill,或者训练机异常关机,那么会因为无法触发on_stop回调,从而导致未发送企业微信通知。完善方案请期待
SwanLab的平台开放API上线。