Slack
如果你希望在训练完成/发生错误时,第一时间发送Slack信息通知你,那么非常推荐你使用Slack通知插件。
改进插件
SwanLab插件均为开源代码,你可以在Github源代码中查看,欢迎提交你的建议和PR!
准备工作
- 前往 Slack-API 页面,点击 「Create an App」

- 在弹窗中点击 「From scratch」

- 填写 「App Name」 ,并选择用于通知的 workspace,点击右下角的 「Create App」

- 进入 App 配置菜单后,点击左侧的 「Incoming Webhooks」,并开启 「Activate Incoming Webhooks」 按钮;

- 在页面下方,点击 「Add New Webhook to Workspace」,将APP添加到工作区的频道中;

- 在跳转的应用请求页面中,选择好APP要发送消息的频道,点击 「允许」

7.最后返回 APP 配置页面,复制APP的 Webhook URL

基本用法
使用Slack通知插件的方法非常简单,只需要初始化1个SlackCallback
对象:
python
from swanlab.plugin.notification import SlackCallback
slack_callback = SlackCallback(
webhook_url='https://hooks.slack.com/services/xxxx/xxxx/xxxx',
language='zh'
)
然后将slack_callback
对象传入swanlab.init
的callbacks
参数中:
python
swanlab.init(callbacks=[slack_callback])
这样,当训练完成/发生错误时(触发swanlab.finish()
),你将会收到Slack消息通知。

自由提醒
你还可以使用SlackCallback
对象的send_msg
方法,发送自定义的的Slack消息。
这在提醒你某些指标达到某个阈值时非常有用!
python
if accuracy > 0.95:
# 自定义场景发送消息
slack_callback.send_msg(
content=f"Current Accuracy: {accuracy}", # 通知内容
)
限制
Slack通知插件的训练完成/异常通知,使用的是
SwanKitCallback
的on_stop
生命周期回调,所以如果你的进程被突然kill
,或者训练机异常关机,那么会因为无法触发on_stop
回调,从而导致未发送Slack通知。完善方案请期待
SwanLab
的平台开放API
上线。