序文#
大規模な数値計算や機械学習モデルのトレーニングには、数十時間または数日にも及ぶことがあります。私たちは自然に、トレーニングが完了したときに通知を受け取りたいと思います。そうすれば、繰り返し確認する必要がありません。
インターネットで調べてみると、関連するチュートリアルは非常に少ないことがわかりました。この記事では、無料のプッシュ通知サービスである「bark」と「wxpusher」の使用方法を提供し、スクリプトが完了したときに自動的に携帯電話や WeChat に通知を送信する方法を実現します。
bark#
barkは、無料のオープンソースのプッシュ通知サービスで、iOS のみをサポートしています。
ダウンロードとインストール#
アプリに入ったら、上記の画像のリンクをコピーしてください。
Python の呼び出し#
まず、requests パッケージが必要です。
import requests
モデルトレーニングのコードブロックの後に次の行を追加してください。
ret = requests.get('https://api.day.app/8BZtwxVav***********/報警滴滴滴/テストメッセージ')
上記のリンクを自分のものに置き換え、内容を自分で変更してください。
この行が実行されると、通知が携帯電話に送信されます。
wxpusher#
Android の場合、wxpusherを使用してメッセージを WeChat に送信できます。現在、完全に無料です。同様の有名な Server 酱は、現在は 1 日につき 5 回の無料プッシュのみ提供されているため、使用はお勧めしません。
アプリの作成#
WeChat で QR コードをスキャンして自動登録するだけで簡単です。中に入ったら、アプリを作成し、必須項目を入力するだけでかまいません。作成が完了すると、appToken が表示されますので、必ず保存してください。形式は次のようになります。
AT_yn7Xsvz**********
アプリを作成した後、QR コードが表示されますので、WeChat でスキャンしてアプリと関連付けます。その後、左側のユーザーリストをクリックし、UID をコピーします。
形式は次のようになります。
UID_VO8eFt***********
Python の呼び出し#
上記の「bark」と比較して、WeChat の API にはいくつかの制限があり、JSON 形式での送信が必要です。
import requests
import json
# wxpusher
headers = {'content-type': "application/json"}
body = {
"appToken":"AT_yn7Xsvz**********",
"content":"これはテストメッセージです",
"summary":"報警滴滴滴",
"contentType":1,
"topicIds":[],
"uids":["UID_VO8eFt***********"]
}
「appToken」と「uids」を自分のものに置き換えてください。
モデルトレーニングのコードブロックの後に次の行を追加してください。
ret = requests.post('http://wxpusher.zjiecode.com/api/send/message', data=json.dumps(body), headers=headers)
これにより、スクリプトが完了したときに API に POST リクエストが送信され、WeChat に通知が即座に送信されます。
最終的な効果#
非常に速く、実行するとすぐに通知を受け取ることができます。
唯一の欠点は、WeChat の公式の制限により、通知の内容が直接表示されないため、表示するにはクリックする必要があることです。
さらに進んで#
- モデルトレーニングに限らず、任意の長時間実行されるプログラムに使用できます。
- より多くの用途を開発することができます。例えば、プログラムが実行中に例外が発生した場合に通知を送信するなどです。
- この記事では Python の例を示していますが、MATLAB の場合はこちらを参照してください。他のスクリプト言語でも同様に使用することができます。HTTP リクエストを送信できれば問題ありません。