KANIKIG

KANIKIG

just for fun | 兴趣使然 Ph.D. in Engineering|❤️ #NFT $ETH| [Twitter](https://twitter.com/kanikig2)|[Github](https://github.com/KANIKIG)|[Telegram channel](https://t.me/kanikigtech)

懶人技巧-模型訓練完成時發通知到手機

image

前言#

現在進行大型數值計算,或訓練機器學習模型的時間可以長達數十小時甚至數天。我們自然是希望跑完的時候能夠收到通知,這樣就不用反覆上去查看了。

查了下網上居然相關教程非常少,本文提供barkwxpusher兩個免費推送服務的使用方法,實現腳本跑完時自動發通知到手機或微信。

bark#

bark是一款開源免費的推送服務,僅支持ios

下載安裝#

iShot2022-04-04 15.14.24

進入 app 後複製如上圖的鏈接即可

python 調用#

首先需要 requests 包

import requests

在模型訓練的代碼塊後面加上這行

ret = requests.get('https://api.day.app/8BZtwxVav***********/報警滴滴滴/測試消息')

上面鏈接換成你自己的,內容可以自己修改。

程序運行到這行就會發送通知到你的手機了。

wxpusher#

如果是安卓手機,可以用wxpusher推送消息到微信,目前完全免費。類似的比較有名的 server 醬現在每天僅提供 5 次免費推送,不建議使用。

創建應用#

微信掃碼自動註冊,很方便。進去後創建應用,只要填必填項就可以,創建完成後會給你一個 appToken,務必保存好。格式形如

AT_yn7Xsvz**********

應用創建完成後會顯示一個二維碼,一樣用微信掃一下,你與應用就關聯上了。然後點擊左側用戶列表,複製你的 UID

iShot2022-04-04 14.57.23

格式形如

UID_VO8eFt***********

python 調用#

相比於上面的bark,微信接口有一些限制,需要用json格式傳輸。

import requests
import json

# wxpusher
headers = {'content-type': "application/json"}
body = {
  "appToken":"AT_yn7Xsvz**********",
  "content":"這是一條測試消息",
  "summary":"報警滴滴滴",
  "contentType":1,
  "topicIds":[],
  "uids":["UID_VO8eFt***********"]
}

appTokenuids替換成你的就可以了。

在模型訓練的代碼塊後面加上

ret = requests.post('http://wxpusher.zjiecode.com/api/send/message', data=json.dumps(body), headers=headers)

這樣跑完的時候就會post請求到 api,即時發送通知到你的微信了。

最終效果#

非常快,基本上一執行就立刻接到通知了。

IMG_1722

唯一美中不足的就是wxpusher受微信官方一些限制,通知沒法直接顯示內容,需要點進去才能查看。

進階#

  1. 不僅適用於模型訓練,可以用於任何長時間運行的程序
  2. 可以開發更多用法,例如程序運行時拋出異常,發通知。
  3. 本文僅給出 python 示例,如果是 matlab 可以參考這裡,其他腳本語言也可以,只要能發送 http 請求。
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。