基于Pushdeer(类似于Server酱)的任务完成提醒+wandb可视化模型训练结果

安装pypushdeer

pip install pypushdeer

手机安装pushdeer

会得到设备的key
pushdeer目前没有严格的推送限制,也就是一分钟60次,为了避免商用。
https://github.com/easychen/pushdeer/issues/83
可以和server酱联合使用,防止出现tx封锁公众号消息推送服务,pushdeer也有自建服务,相对稳定。

代码推送

from pypushdeer import PushDeer

pushdeer = PushDeer(pushkey="your_push_key")
pushdeer.send_text("hello world", desp="optional description")
pushdeer.send_markdown("# hello world", desp="**optional** description in markdown")
pushdeer.send_image("https://github.com/easychen/pushdeer/raw/main/doc/image/clipcode.png")
pushdeer.send_image(
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=")

实际使用中在项目下的utils中实现pushdeer.py模块

.py文件是模块 含有.py文件以及__init__.py文件的文件夹是包。

from pypushdeer import PushDeer
def push_deer(text="hello world"):
    pushdeer = PushDeer(pushkey="XXX") #从pushdeer ios app中获得
    pushdeer.send_text(text, desp="optional description")
    # pushdeer.send_markdown("# hello world", desp="**optional** description in markdown")
    # pushdeer.send_image("https://github.com/easychen/pushdeer/raw/main/doc/image/clipcode.png")
    # pushdeer.send_image(
    # "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=")

然后在代码运行的主文件夹中,引入当前程序的跟路径(一般是程序所在的主文件夹);然后倒入pushdeer模块,并调用该模块下的push_deer()方法,发送消息推送。

import sys
sys.path.append('/home/data/XXX/codespace/debate/XXX')
from utils import fypushdeer
fypushdeer.push_deer()

wandb的使用,展示模型训练结果

注册

https://wandb.ai/home

按照注册后的主页流程安装和登陆wandb

页面中包括api key
登陆后,会在服务器的主目录下生成一个.netrc文件,其中保存了你的key和密令。
另外 wandb可以通过学校邮箱实现解锁全部功能。
下一次输入wandb login后不需要再次填入key,会默认自动登录

结合pushdeer的例子

import sys
sys.path.append('/home/data/XXX/codespace/debate/XXX')
from utils import fypushdeer

# 下面是模拟的训练过程
import wandb
import random
# start a new wandb run to track this script
wandb.init(
    # set the wandb project where this run will be logged
    project="my-awesome-project",
    
    # track hyperparameters and run metadata
    config={
    "learning_rate": 0.02,
    "architecture": "CNN",
    "dataset": "CIFAR-100",
    "epochs": 10,
    }
)

# simulate training
epochs = 10
offset = random.random() / 5
for epoch in range(2, epochs):
    acc = 1 - 2 ** -epoch - random.random() / epoch - offset
    loss = 2 ** -epoch + random.random() / epoch + offset
    
    # log metrics to wandb 在每个epoch中,把你的指标记录到wandb
    wandb.log({"acc": acc, "loss": loss})
    
# [optional] finish the wandb run, necessary in notebooks
wandb.finish()

# push deer
fypushdeer.push_deer()

结果观察

进入网页中,可以查看对应项目每次运行的结果折线图。每次运行的结果会用不同的序号标注。
在这里插入图片描述

错误修正

如果在程序运行期间从网页上三处wandb run,会导致下一次运行的时候wandb.init()报错。

解决方案:去程序当中的wandb/latest-run文件夹下删除残留的文件

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值