使用Python向你的移动设备发送通知

有时候我们需要在一段python代码执行完成后提醒我们,比如长时间的深度学习训练完成后,向手机发送通知来提醒我们训练完成。使用python包 notify-run 可以方便的实现如上需求,并且内置了Keras的回调函数,能够更方便地发送实时训练消息。

1. 安装

直接pip安装 notify-run 包:

2. 配置

注册服务: 然后会弹出一个二维码:


手机扫描这个二维码,并用chrome打开这个网页,其他浏览器未尝试,只要支持WebPushAPI就可以。

注册的叫Channel,每个Channel都对应一个Channel ID。

然后点击 Subscribe on this device ,同意此网站给你发送通知:



这样就在此设备上注册完成了。

3. 测试

可以先用 cURL 测试一下推送是否成功: 这条语句是向 YourChannelID 发送一条内容为message goes here的通知。

手机上收到的通知如下:



效果还不错,延迟几秒之内,优先级高。

4. 嵌入代码

 

运行就会在手机上收到通知

5.写入/读取配置

如果在不同环境中要使用同一份配置,需要写入/读取配置。

配置在notify-run中被称作Endpoint。

首先在已经register过的环境上运行:

上面的代码将配置文件写入了 '~/.config/notify-run' 

接着,在其他环境中读取此配置:

就可以了~

或者使用命令行:

6. Keras回调

notify-run实现了Keras的回调函数,这样就可以在训练过程中实时发送训练情况,而不是训练完成后发送。 嵌入 model.fit() 的 callback 中就可以:



手机上会在每个 epoch 完成后收到的 loss 和 acc 数值的通知:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据