wandb快速入门使用教程

深度学习:使用wandb记录训练日志

本文旨在简单介绍wandb在卷积神经网络训练过程中的一些基础设置,可以快速入门并使用wandb记录自己的训练日志,方便后续的实验复现。如果有什么问题欢迎在评论区讨论。

一、登陆注册wandb

登录注册账号:https://wandb.ai/
登陆注册账号后创建一个project,会得到一个账号相关联的key
可以认为该key是一个身份码,与自己注册的账号绑定
(学习教程:https://docs.wandb.ai/quickstart)

二、下载并登录wandb

#在命令行对应环境中执行
pip install wandb

#运行下面代码后会要求输入key,即输入步骤一的key
wandb login
#如果想要换账号:
#wandb login --relogin

运行wandb login --relogin代码会出现:

wandb: You can find your API key in your browser here: https://wandb.ai/authorize
[34m[1mwandb[0m: Paste an API key from your profile and hit enter, or press ctrl+c to quit:

此时随意输入40位数字即可覆盖之前的账号信息,以保证在其他电脑上使用时实验数据的安全。或者换一个账号的key进行登录

三、启用wandb中的云端run

import os
os.environ['WANDB_MODE'] = 'offline'

调用上面语句可以在调试的时候不传数据去云端,但是运行日志会保留在本地?
此功能一般在调试bug的时候不想在云端保存训练数据时使用。

四、wandb使用

1、导入wandb并初始化

import wandb
wandb.init(project="test", entity="shuttle",name="test1")

其中的test对应wandb云端的project,entity对应的云端账号,name=tets1 对应的云端的运行run。

2、记录超参数

记录超参数一般在网络训练之前,大多数人的用法是直接记录argparse中的所有参数,见方式③
① 方式1

wandb.config = {
  "learning_rate": 0.001,
  "epochs": 100,
  "batch_size": 128
}
wandb.config.update()

② 方式2

#记录训练的超参数
config = wandb.config
config = {
    "learning_rate": opt.lr,
    "epochs": opt.epoch,
    "batch_size": opt.batch_size
}
#name为运行的空间名称,可以有同名
wandb.init(project="study",entity="shuttle",name="train_face",config=config)

后续添加超参数可以使用如下语句:

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
wandb.config.update({"device" : device , "model" : "Vgg16"})

③ 方式3

# CASIA_options()为项目执行参数表
options = CASIA_options()
opt = options.parse()

wandb.config.update(opt)

使用这种方法,要在前面将config放进init函数里面,即:
wandb.init(project="study",entity="shuttle",name="train_face",config=config)
④ 更多方法详情参考网址:https://docs.wandb.ai/guides/track/config

3、记录训练日志(图片+文字)

在正常打印日志的地方添加下列语句:

 if(step%100 == 0):
 	print("step:{} all_step:{} loss:{}".format(step,int(train_size/4),loss))
    wandb.log({"loss": loss,
               "epoch":epoch})

wandb.log输入的是字典类型
这里如果需要保存图片可以使用下列方法:

Img = wandb.Image(image, caption="epoch:{}".format(epoch) + string)
wandb.log({"epoch "+str(epoch): Img})

这里的image为需要输入到wandb的图片,epoch为训练的epoch数,string为自定义图片的名称。
下面字典的键值对中键表示的是wandb显示图片上面的标题,值就是图片。

4、保存模型、关闭wandb

在所有epoch运行完之后,添加下列语句即可保存模型并关闭wandb:

wandb.save('model.h5')
wandb.finish()

5、训练过程中获得权重直方图

在获得模型后面加就可以了

Vgg_model = model.vgg16(pretrained=True,progress=True)
#获得训练过程中权值梯度的直方图
wandb.watch(Vgg_model)

6、如果碰到模型运行完仍然没有final,且点击stop一直无法stop,可以运行下列程序:

随便在一个有wandb并login的主机新建py文件,运行,其中,project、entity、id需与项目保持一致。

import wandb

wandb.init(project="Net", entity="shuttle", id="fgor***z")
wandb.finish()

7、使用wandb可以导出对应的run信息

import wandb
api = wandb.Api()

run = api.run("shuttle/Net/fgor***z")
if run.state == "finished":
    for i, row in run.history().iterrows()
        print(row["_timestamp"], row["accuracy"])

使用wandb可以导出对应的run信息

8、在命令行执行下列语句可以将未同步的程数据同步到云端

wandb sync "wandb/run-20220428_220148-1yeps3ra/"

注意:这里得"wandb/run-20220428_220148-1yeps3ra/"地址需要修改为你电脑里的相对应的地址。"1yeps3ra"表示的是项目id地址。
这里主要是因为使用wandb训练时经常是出现网络中断而导致本地日志没有全部上传云端,所以在云端只有部分数据,可以使用这条命令进行同步,将云端数据补全。

7、更多用法有待探索

wandb关于本地的一些日志设置方法可以参考下述链接:
https://zoeyuchao.github.io/2020/10/15/Weights-&-Biases%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.html#3run

wandb对于视觉的处理:https://docs.wandb.ai/examples
参考链接:https://blog.csdn.net/qq_40507857/article/details/112791111

  • 25
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
YOLO系列是基于深度学习的端到端实时目标检测方法。 PyTorch版的YOLOv5轻量而高性能,更加灵活和易用,当前非常流行。 本课程将手把手地教大家使用labelImg标注和使用YOLOv5训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。  本课程的YOLOv5使用ultralytics/yolov5,在Windows和Ubuntu系统上分别做项目演示。包括:安装YOLOv5、标注自己的数据集、准备自己的数据集(自动划分训练集和验证集)、修改配置文件、使用wandb训练可视化工具、训练自己的数据集、测试训练出的网络模型和性能统计。 除本课程《YOLOv5实战训练自己的数据集(Windows和Ubuntu演示)》外,本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测:原理与源码解析》课程链接:https://edu.csdn.net/course/detail/31428《YOLOv5目标检测实战:Flask Web部署》课程链接:https://edu.csdn.net/course/detail/31087《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》课程链接:https://edu.csdn.net/course/detail/32303《YOLOv5目标检测实战:Jetson Nano部署》课程链接:https://edu.csdn.net/course/detail/32451《YOLOv5+DeepSORT多目标跟踪与计数精讲》课程链接:https://edu.csdn.net/course/detail/32669《YOLOv5实战口罩佩戴检测》课程链接:https://edu.csdn.net/course/detail/32744《YOLOv5实战中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/35209 《YOLOv5实战垃圾分类目标检测》课程链接:https://edu.csdn.net/course/detail/35284  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值