[深度学习]服务器推送信息到手机
效果
原理
微信服务号是可以推送模板类消息到个人账号的,gpu服务器在训练的时候,把重要信息通过post请求发到服务号的服务器,然后以模板消息推送给微信。但只有企业或者个人经营企业才能注册服务号,所以我使用第三方的服务。一个是autoDL的推送,一个是server酱。本来以为不在autoDL机房里的服务器是不能用这个API的,后来发现autoDL文档里说“即使您不租用AutoDL的GPU实例,也欢迎您使用该功能”。只能说这个平台我用的太舒服了,自来水给它打广告好吧。autoDL每天限制50条但没法氪金,server酱不氪金是5条,氪金是1k条。我两边的代码都跑通了,但还是决定只用autoDL。
API使用
网址:https://www.autodl.com/docs/msg/
先注册咯,然后在帮助文档->最佳实践->微信消息,就有教程,先获取token,然后套他的模板,没写过这种请求也可以看看我的代码。
我的思路是把整体代码放一个函数里,然后try它,如果抓到exception就推送到手机。同时如果顺利炼完就推送完成的消息。如果是租用的服务器也可以加个关机指令,有关机指令就必须把log重定向到文件。
我的代码
def main():
#training ...
torch.save(MT,'./model_head2.pkl')
headers = {"Authorization": "把这段换成你的token记得引号要留着"}
resp = requests.post("https://www.autodl.com/api/v1/wechat/message/send",
json={
"title": "A100: 炼完辣",
"name": "你的模型炼完辣",
"content": "快点关机!!"
}, headers = headers)
try:
main()
except Exception as e:
# print the error message
print(str(e))
headers = {"Authorization": "把这段换成你的token记得引号要留着"}
resp = requests.post("https://www.autodl.com/api/v1/wechat/message/send",
json={
"title": "A100: 寄啦",
"name": "你的模型寄辣",
"content": str(e)
}, headers = headers)