はじめに
機械学習って学習時間長くないですか?
いつ終わるんだろうとか、クラウドの場合は、終了時間を覚えておかないとインスタンスの時間かかって高額の使用量が請求されてしまうなんてこともあると思います。(経験談)
そこで、今回は学習結果と、完了通知をslackに通知します。
1. Incoming webhookの利用
まずは、slackとアプリの連携を行いましょう。
Incoming webhookというAPIを使用します。
先人の方がとても細かくまとめてくださっているのでこちらを参考にしました。
そのため、Incomingwebhookの登録方法は省きます。
2. サンプルコード
こちらです。
notificaton.py
import slackweb
slack = slackweb.Slack(url="Your IncomigWebhooks URL")
slack.notify(text="通知したい文字")
3.使用方法
学習するモジュール上に先ほどのコードを埋め込みます。
以下はpytorchを想定しています。
train.py
import slackweb
slack = slackweb.Slack(url="Your IncomigWebhooks URL")
def run_training():
#省略
for epoch in range(Config.EPOCHS):
loss, acc = train_fn(model, trainloader, optimizer, scheduler, epoch)
torch.save(model.state_dict(),'modelname_epoch.pt')
slack.notify(text="学習が完了しました")
関数化して、リンク先のボタンを追加したコードはこちら。
おわり
いかがでしたでしょうか?
非常に簡単に学習完了通知ができるので、皆さんも是非試してみてください。
よい機械学習ライフを!!