文章目录
安装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的使用,展示模型训练结果
注册
按照注册后的主页流程安装和登陆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文件夹下删除残留的文件