30分钟吃掉wandb模型训练可视化

使用kaggle_secrets登录wandb,并解决wandb.finish出错,不显示jupyter日志问题 kaggle代码登录wandb,解决wandb关闭失败,jupyter日志不显示到wandb,'ZMQDisplayPublisher' object has no attribute '_orig_publish' 阅读详情
AI摘要

wandb是一个强大的机器学习实验管理和可视化工具,它提供实验跟踪、版本管理、case分析等功能,相比TensorBoard,wandb支持云端存储、代码和数据集版本控制。文章介绍了如何使用wandb进行模型训练的记录、数据集和模型的保存,以及通过wandb.Table进行案例分析。此外,wandb还支持自动化模型调参。

wandb是"我爱你,大baby"首字母的缩写。

顾名思义,她是炼丹师的大宝贝,是炼丹师最爱的炼丹伴侣。

公众号算法美食屋后台回复关键词:wandb,获取本教程 notebook源码 和 B站视频演示。

02c8df7a7ed8abaa5b860b59066b5c1f.png

just kidding, 开个玩笑!

wandb全称weights&bias,是一款类似TensorBoard

的机器学习可视化分析工具。

相比TensorBoard,wandb具有如下主要优势:

  • 日志上传云端永久存储,便于分享不怕丢失。

  • 可以存管代码,数据集和模型的版本,随时复现。(wandb.Artifact)

  • 可以使用交互式表格进行case分析(wandb.Table)

  • 可以自动化模型调参。(wandb.sweep)

官方文档:https://docs.wandb.ai/


总体来说,wandb目前的核心功能有以下4个:

1,实验跟踪:experiment tracking (wandb.log)

2,版本管理:version management (wandb.log_artifact, wandb.save)

3,case分析:case visualization (wandb.Table, wandb.Image)

4,超参调优:model optimization (wandb.sweep)

本文我们主要介绍 前3个能力,超参调优的介绍在下一篇文章。

〇,注册wandb

使用wandb可视化模型训练过程需要在  https://wandb.ai/ 注册账户,

并在个人settings页面获取 API keys。

#import os
#os.environ["WANDB_API_KEY"] = "xxxx"

import wandb
wandb.login()

一,实验跟踪

wandb 提供了类似 TensorBoard的实验跟踪能力,主要包括:

  • 模型配置超参数的记录

  • 模型训练过程中loss,metric等各种指标的记录和可视化

  • 图像的可视化(wandb.Image)

  • 其他各种Media(wandb.Vedio, wandb.Audio, wandb.Html, 3D点云等)

import os,PIL 
import numpy as np
from torch.utils.data import DataLoader, Dataset
import torch 
from torch import nn 
import torchvision 
from torchvision import transforms
import datetime
import wandb 
from argparse import Namespace

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
config = Namespace(
    project_name = 'wandb_demo',
    
    batch_size = 512,
    
    hidden_layer_width = 64,
    dropout_p = 0.1,
    
    lr = 1e-4,
    optim_type = 'Adam',
    
    epochs = 15,
    ckpt_path = 'checkpoint.pt'
)

def create_dataloaders(config):
    transform = transforms.Compose([transforms.ToTensor()])
    ds_train = torchvision.datasets.MNIST(root="./mnist/",train=True,download=True,transform=transform)
    ds_val = torchvision.datasets.MNIST(root="./mnist/",train=False,download=True,transform=transform)

    ds_train_sub = torch.utils.data.Subset(ds_train, indices=range(0, len(ds_train), 5))
    dl_train =  torch.utils.data.DataLoader(ds_train_sub, batch_size=config.batch_size, shuffle=True,
                                            num_workers=2,drop_last=True)
    dl_val =  torch.utils.data.DataLoader(ds_val, batch_size=config.batch_size, shuffle=False, 
                                          num_workers=2,drop_last=True)
    return dl_train,dl_val

def create_net(config):
    net = nn.Sequential()
    net.add_module("conv1",nn.Conv2d(in_channels=1,out_channels=config.hidden_layer_width,kernel_size = 3))
    net.add_module("pool1",nn.MaxPool2d(kernel_size = 2,stride = 2)) 
    net.add_module("conv2",nn.Conv2d(in_channels=config.hidden_layer_width,
                                     out_channels=config.hidden_layer_width,kernel_size = 5))
    net.add_module("pool2",nn.MaxPool2d(kernel_size = 2,stride = 2))
    net.add_module("dropout",nn.Dropout2d(p = config.dropout_p))
    net.add_module("adaptive_pool",nn.AdaptiveMaxPool2d((1,1)))
    net.add_module("flatten",nn.Flatten())
    net.add_module("linear1",nn.Linear(config.hidden_layer_width,config.hidden_layer_width))
    net.add_module("relu",nn.ReLU())
    net.add_module("linear2",nn.Linear(config.hidden_layer_width,10))
    net.to(device)
    return net 

def train_epoch(model,dl_train,optimizer):
    model.train()
    for step, batch in enumerate(dl_train):
        features,labels = batch
        features,labels = features.to(device),labels.to(device)

        preds = model(features)
        loss = nn.CrossEntropyLoss()(preds,labels)
        loss.backward()

        optimizer.step()
        optimizer.zero_grad()
    return model

def eval_epoch(model,dl_val):
    model.eval()
    accurate = 0
    num_elems = 0
    for batch in dl_val:
        features,labels = batch
        features,labels = features.to(device),labels.to(device)
        with torch.no_grad():
            preds = model(features)
        predictions = preds.argmax(dim=-1)
        accurate_preds =  (predictions==labels)
        num_elems += accurate_preds.shape[0]
        accurate += accurate_preds.long().sum()

    val_acc = accurate.item() / num_elems
    return val_acc

def train(config = config):
    dl_train, dl_val = create_dataloaders(config)
    model = create_net(config); 
    optimizer = torch.optim.__dict__[config.optim_type](params=model.parameters(), lr=config.lr)
    #======================================================================
    nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    wandb.init(project=config.project_name, config = config.__dict__, name = nowtime, save_code=True)
    model.run_id = wandb.run.id
    #======================================================================
    model.best_metric = -1.0
    for epoch in range(1,config.epochs+1):
        model = train_epoch(model,dl_train,optimizer)
        val_acc = eval_epoch(model,dl_val)
        if val_acc>model.best_metric:
            model.best_metric = val_acc
            torch.save(model.state_dict(),config.ckpt_path)   
        nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        print(f"epoch【{epoch}】@{nowtime} --> val_acc= {100 * val_acc:.2f}%")
        #======================================================================
        wandb.log({'epoch':epoch, 'val_acc': val_acc, 'best_val_acc':model.best_metric})
        #======================================================================        
    #======================================================================
    wandb.finish()
    #======================================================================
    return model
model = train(config) ##3,2,1 点火🔥🔥

二,版本管理

除了可以记录实验日志传递到 wandb 网站的云端服务器 并进行可视化分析。

wandb还能够将实验关联的数据集,代码和模型 保存到 wandb 服务器。

非常便于我们以后 或者其他人 对实验结果进行复现。

我们可以通过 wandb.log_artifact的方法来保存任务的关联的重要成果。

例如dataset, code,和 model,并进行版本管理。

注:artifact翻译为"工件",是指软件开发中产出的最终成果.

我们先使用run_id 恢复 run任务,以便继续记录。

#resume the run 
import wandb 

run = wandb.init(project='wandb_demo', id= model.run_id, resume='must')
# save dataset 
arti_dataset = wandb.Artifact('mnist', type='dataset')
arti_dataset.add_dir('mnist/')
wandb.log_artifact(arti_dataset)
# save code 

arti_code = wandb.Artifact('ipynb', type='code')
arti_code.add_file('./30分钟吃掉wandb可视化模型分析.ipynb')
wandb.log_artifact(arti_code)
# save model

arti_model = wandb.Artifact('cnn', type='model')
arti_model.add_file(config.ckpt_path)
wandb.log_artifact(arti_model)
wandb.finish() #finish时会提交保存

三,Case分析

利用 wandb.Table 我们可以在 wandb的 dashboard 进行交互式可视化的 case分析。

#resume the run 
import wandb 
run = wandb.init(project=config.project_name, id= model.run_id, resume='must')
import matplotlib.pyplot as plt 

transform = transforms.Compose([transforms.ToTensor()])
ds_train = torchvision.datasets.MNIST(root="./mnist/",train=True,download=True,transform=transform)
ds_val = torchvision.datasets.MNIST(root="./mnist/",train=False,download=True,transform=transform)
    
# visual the  prediction
device = None
for p in model.parameters():
    device = p.device
    break

plt.figure(figsize=(8,8)) 
for i in range(9):
    img,label = ds_val[i]
    tensor = img.to(device)
    y_pred = torch.argmax(model(tensor[None,...])) 
    img = img.permute(1,2,0)
    ax=plt.subplot(3,3,i+1)
    ax.imshow(img.numpy())
    ax.set_title("y_pred = %d"%y_pred)
    ax.set_xticks([])
    ax.set_yticks([]) 
plt.show()
def data2fig(data):
    import matplotlib.pyplot as plt 
    fig = plt.figure()
    ax = fig.add_subplot()
    ax.imshow(data)
    ax.set_xticks([])
    ax.set_yticks([]) 
    return fig

def fig2img(fig):
    import io,PIL
    buf = io.BytesIO()
    fig.savefig(buf)
    buf.seek(0)
    img = PIL.Image.open(buf)
    return img
from tqdm import tqdm 
good_cases = wandb.Table(columns = ['Image','GroundTruth','Prediction'])
bad_cases = wandb.Table(columns = ['Image','GroundTruth','Prediction'])
# 找到50个good cases 和 50 个bad cases

plt.close()

for i in tqdm(range(1000)):
    features,label = ds_val[i]
    tensor = features.to(device)
    y_pred = torch.argmax(model(tensor[None,...])) 
    
    # log badcase
    if y_pred!=label:
        if len(bad_cases.data)<50:
            data = features.permute(1,2,0).numpy()
            input_img = wandb.Image(fig2img(data2fig(data)))
            bad_cases.add_data(input_img,label,y_pred)
            
    # log goodcase
    else:
        if len(good_cases.data)<50:
            data = features.permute(1,2,0).numpy()
            input_img = wandb.Image(fig2img(data2fig(data)))
            good_cases.add_data(input_img,label,y_pred)
wandb.log({'good_cases':good_cases,'bad_cases':bad_cases})
wandb.finish()

然后就可以在 DashBoard中对Table 进行交互式的分析了,

包括常用的 sort, filter, group 等操作,妥妥的一个网页版的 Excel。

697fadb79f5e53526b65c5f9340ec5c2.png

可视化模块(三): wandb 本文目录wandb安装loss曲线记录1. step记录2. custom x-axis方法一(推荐)方法二Image记录1. 单张Image2. 多张Image方法一(推荐)方法二 wandb是一个可视化库,他有visdom实时查看的优点以及能够永久的记录到云端 wandb安装 登陆https://wandb.ai注册一个wandb账号,然后运行下面命令安装wandb。使用时在终端输入wandb login按照提示输入即可 pip install wandb 使用手册 对于PyTorch:Quick 阅读详情

相关推荐

中文情感分类模型选型实战:Word2Vec/CNN/LSTM/BERT四方案工程对比

文本情感分类是自然语言处理中最基础且高频的工业级任务,其核心挑战在于平衡表征能力、计算开销与交付时效。从词向量静态映射(Word2Vec)到局部模式识别(CNN),再到序列依赖建模(LSTM)和上下文动态表征(BERT),不同模型代表了NLP分类能力演进的关键断层。技术选型不应追求SOTA指标,而需聚焦显存占用、训练时长、推理延迟、小样本鲁棒性等可部署指标。本文基于ChnSentiCorp中文评论数据集,在统一硬件(RTX 3090)、预处理与评估标准下,实测四类主流方案在Macro-F1、单条耗时、模型体

weixin_34234829的博客 357

wandb入门教程

什么是wandb? wandb是Weights & Biases的缩写,这款工具能够帮助跟踪你的机器学习项目。它能够自动记录模型训练过程中的超参数和输出指标,然后可视化和比较结果,并快速与同事共享结果。 通过wandb,能够给你的机器学习项目带来强大的交互式可视化调试体验,能够自动化记录Python脚本中的图标,并且实时在网页仪表盘展示它的结果,例如,损失函数、准确率、召回率,它能够让你在最短的时间内完成机器学习项目可视化图片的制作。 总结而言,wandb有4项核心功能: 看板:跟踪训练过程

yxl_prm的博客 1万+

GANs实战指南:原理、避坑与工业级应用

生成对抗网络(GANs)是生成式AI中聚焦数据分布建模与高保真合成的核心技术,其本质是通过生成器与判别器的对抗博弈实现隐空间的结构化学习。相比VAE的模糊重建与扩散模型的高延迟采样,GAN凭借锐利细节生成、小样本泛化能力及毫秒级推理效率,在医疗影像合成、工业缺陷生成和芯片版图设计等强约束场景中仍具不可替代性。本文深入解析模式坍缩、训练不稳定、伪影生成等典型问题的技术成因,并基于真实GPU小时验证给出R1正则、MinibatchStd、beta1=0.0等关键实操参数,覆盖从数据清洗、架构选型到FID/LPI

ama7449的博客 514

wandb使用方法以及具体设置

wandb是什么 wandb是Weight & Bias的缩写,这是一个与Tensorboard类似的参数可视化平台。不过,相比较TensorBoard而言,Wandb更加的强大,主要体现在以下的几个方面: 复现模型:Wandb更有利于复现模型。 这是因为Wandb不仅记录指标,还会记录超参数和代码版本。 自动上传云端: 如果你把项目交给同事或者要去度假,Wandb可以让你便捷地查看你制作的所有模型,你就不必花费大量时间来重新运行旧实验。 快速、灵活的集...

weixin_43164054的博客 7万+

wandb安装与使用 —— 用于跟踪、可视化和协作机器学习实验的工具

wandb(Weights&Biases, W&B):用于跟踪、可视化和协作机器学习实验的工具,支持在线和离线。它提供了一个简单的 Python API,可以轻松地将实验数据发送到云端,并通过 Web 应用程序进行访问和可视化。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 5万+

无人机射频信号时频图识别数据集与YOLOv8训练指南

射频信号识别是无线电监测与空域管控的核心技术,其本质是将不可见的电磁行为转化为可计算的时频域图像特征。基于GNU Radio采集与标准化可视化生成的频谱图、I/Q瀑布图等时频图谱,结合YOLOv8端到端目标检测框架,可绕过传统信号处理黑箱,直接建模信号源意图。该方法兼具工程落地性与物理可解释性,适用于反制系统研发、低空安防部署及RF指纹分析场景;尤其在小样本、多厂商、强干扰条件下,展现出优于手工特征+分类器的鲁棒判别能力。本文聚焦无人机射频信号检测数据集构建与YOLOv8轻量模型训练实践,覆盖信号采集、图谱

weixin_42526087的博客 190

30分钟吃掉wandb可视化自动调参

wandb.sweep: 低代码,可视化,分布式 自动调参工具。使用wandb 的 sweep 进行超参调优,具有以下优点。(1)低代码:只需配置一个sweep.yaml配置文件,或者定义一个配置dict,几乎不用编写调参相关代码。(2)可视化:在wandb网页中可以实时监控调参过程中每次尝试,并可视化地分析调参任务的目标值分布,超参重要性等。(3)分布式:sweep采用类似master-work...

Python_Ai_Road的博客 3471

外部ADC之AD7949——14bit、8通道、250k

在实际项目中,仅靠单片机内部的ADC采样,很有可能达不到实际采样精度,这个时候就需要外接外部ADC芯片进行采样,这些外部ADC一般都是SPI接口或者是并口。单片机通过SPI接口或并口读写芯片内部寄存器,配置参考极性、采样通道、低通滤波器带宽、基准电压源、通道序列器等。本文主要对ADI家的14bit、8通道、250k的ADC7949做一个总结,这款ADC在实际项目中使用,采样精度达到要求,读取时序有点点绕,但是是一款十分常用的ADC芯片。就是价格不太友好哈哈,一块芯片快60。

cyaya6的博客 6718

【深度学习】wandb模型训练可视化工具使用方法

Wandb(Weights & Biases)是一款专为机器学习和深度学习设计的可视化工具,旨在帮助开发者更高效地跟踪、可视化和共享实验结果提供在线平台,可以轻松记录实验的超参数、输出指标以及模型的变化,并通过直观的仪表盘展示这些信息与tensorboard类似,均是机器学习可视化分析工具wandb相较于Tensorboard的优势:1.wandb的日志文件上传云端存储,可永久保存,tensorboard存储在本地2.wandb存储代码,数据集,模型,

几度热忱的博客 1万+

TTL电路搭建半加器实验:操作指南完整版

通过TTL电路搭建半加器,详解逻辑设计与实验步骤,帮助掌握数字电路中的半加器工作原理与实际应用,适合电子技术初学者动手实践。

weixin_42524864的博客 358

手把手教你用MSPM0G3507和TB6612驱动MG513X电机(附完整代码与PID调速)

本文详细介绍了如何使用MSPM0G3507微控制器和TB6612驱动模块控制MG513X电机,包括硬件连接、软件配置、编码器测速和PID调速等关键步骤。通过完整的代码示例和PID算法实现,帮助开发者快速掌握电机驱动技术,适用于智能小车、机械臂等嵌入式项目。

weixin_30254435的博客 341

Slick 移动端触摸滑动避坑指南:3 个参数语义 + 2 段代码,让真机轮播行为符合直觉

给 Slick 轮播调移动端触摸时,真机上最先翻车的往往不是样式,而是参数语义:`touchThreshold` 方向是反的,`swipeToSlide` 会偷偷改写 `slidesToScroll`,`edgeFriction` 的默认值文档和源码还对不上。这篇文章基于源码把 Slick 触摸滑动的判定链路拆清楚,给出两套可直接抄的处理写法,让手机轮播做到滑得翻、停得稳、点不误。 ## 结论先

gitblog_00810的博客 68

小米汽车技术路线

从小米的电子电器架构来看,行业内EEA已经由域集中逐渐过度到域融合+区域控制的架构并向着中央计算+区域控制的方向发展。 而小米汽车智驾算法也从基于高精地图模块化架构,到去高精地图模块化架构,再到端到端架构,这也正是行业对于智驾算法演进的共识。

HITbingdu的博客 3792

Unsloth加速LLaMA-3微调:单卡A10上4小时完成8B模型LoRA训练

大语言模型(LLM)微调是落地应用的关键环节,其核心挑战在于计算效率与显存占用的平衡。LoRA作为一种高效参数微调技术,虽降低参数量,但传统实现(如HuggingFace PEFT)因Python层hook开销、中间张量冗余分配及未优化的CUDA kernel,导致实际训练速度受限、显存碎片严重。Unsloth通过深度内联LoRA计算至Linear层原生forward,融合x@W_base与x@A@B为单kernel执行,消除临时显存分配并适配Tensor Core指令,在A10等消费级GPU上实现训练速度

weixin_30376083的博客 460

14、多标签分类与卷积神经网络在医学图像处理中的应用

本文探讨了多标签分类与卷积神经网络(CNN)在医学图像处理中的应用。文章详细介绍了多标签分类的概念和挑战,以及如何通过CNN进行高效、准确的分类任务。内容涵盖模型设计、损失函数选择、数据增强技术、类别权重调整等关键技术点,并结合实际案例,如白内障手术工具检测、视网膜血管分割等,展示了CNN在医学图像分析中的强大潜力。此外,还讨论了模型优化策略及面临的挑战与解决方案。

t8u9v0的博客 193

【芯片设计- RTL 编译与仿真 1.2 -- Visualizer 常用使用命令】

打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮,因为默认verdi 默认并不是显示所用信号。如果想统计某一个信号中有多少笔数据时,可以使用 Expression->Edege Count 功能。如下图所示,如果没有打开前导0的功能时,当某一笔数据位0时,只会显示1个0。如果需要将波形的数据导出到文本文件时,可以按照下面步骤进行。打开前导0功能之后,会根据数据位宽来显示对应0的个数。

CodingCos的博客 2049

机器学习研究员的真实工作流:数据工程、工具链与职业生存指南

机器学习研究员的核心能力远不止模型设计与论文写作,而是扎根于数据工程、系统调试与跨领域协作等基础技术实践。从数据清洗、基线复现到分布式训练排障,真实工作80%时间消耗在数据管道构建、工具链适配与生产环境落地等‘脏活’上。这些环节直接受限于数据质量、框架版本兼容性、硬件拓扑与部署算子支持度等底层因素。掌握数据血缘追踪、梯度流可视化、混合精度通信优化等硬技能,不仅能提升实验效率,更是保障模型从实验室走向工业场景的关键。本文聚焦ML研究员在实际项目中高频遭遇的数据加载瓶颈、DDP同步失效、Triton部署崩溃等典

weixin_34228387的博客 428

脑机接口中的视觉信号解码:原理、技术与应用

脑机接口中的视觉信号解码:原理、技术与应用​ ,人工智能,计算机视觉,大模型,AI,脑机接口(Brain - Computer Interface,BCI)作为一种革命性的技术,致力于搭建人脑与外部设备之间的直接通信桥梁,绕开传统的神经肌肉输出通路。其核心目标是解读大脑活动产生的信号,从而实现对外部设备的精准控制或信息交互。在众多脑机接口研究方向中,视觉信号解码因其独特的优势和广泛的应用前景,吸引了大量科研人员的关注。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 20万+

PyTorch显存管理三层次解析与实战优化指南

显存管理是深度学习训练中的核心基础设施能力,涉及GPU物理内存、框架级缓存分配器和自动求导计算图三层机制。理解其动态分配、引用生命周期与碎片化原理,是解决CUDA out of memory问题的关键。PyTorch通过caching allocator实现高效复用,但也会因中间激活保留、梯度累积或计算图未释放导致隐式泄漏;而autograd graph的DAG结构决定了前向激活必须驻留显存直至反向完成。典型应用场景包括大模型训练、混合精度优化、梯度检查点及FSDP分布式训练。本文深入剖析torch.cud

weixin_29056781的博客 308

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

UQ-Loc:面向LiDAR定位的带不确定性场景坐标回归

在自动驾驶与机器人定位中,位姿估计的可靠性往往比单值精度更重要。场景坐标回归(Scene Coordinate Regression)作为一种从观测直接映射全局坐标的技术,相比传统点云配准,具备更强的全局定位能力,而结合不确定性估计后,模型能够同时输出“位置”与“置信度”,为下游融合提供关键质量信号。这类方法通过3D特征网络回归逐点场景坐标,并预测对数方差作为不确定度,再经加权PnP或RANSAC求解位姿。其技术价值在于,系统可据此过滤动态物体干扰、调整融合权重、提前预警退化场景,从而显著提升LiDAR定位

weixin_34269583的博客 325

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

GPU空转真相:90%的算力浪费源于四层认知断层

GPU利用率低并非硬件短缺,而是深度学习工程中普遍存在的系统性误用问题。从GPU与CPU的根本差异出发,其高吞吐依赖内存带宽、计算调度与通信协同的精密配合;PyTorch/TensorFlow等框架的默认配置、DataLoader参数、混合精度策略、NCCL通信设置等,均会隐式引入显著开销;真实瓶颈常藏于CPU-GPU数据搬运、Tensor Core未激活、序列长度非对齐、SM活跃率虚高这些技术细节之中。掌握基于DCGM+Nsight的三维监控、五级归因分析和七类即插即用优化手段,可在不增硬件前提下将现有G

weixin_29032337的博客 270

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

wandb不可缺少的机器学习分析工具

wandb是一款优秀的机器学习模型训练分析跟踪工具,通过它我们可以和简洁的分析出训练过程中指标和参数的变化情况,来更好的帮助我对模型进行调优,通过它还能够使得我们进行协同工作,分析我们的训练结果,帮助更好更方便的复现我们的模型...

修炼之路 7961

模型训练过程可视化--WandB的使用方法

WandB 是一个帮助机器学习开发者跟踪和可视化他们实验的软件库。它提供了一个平台,可以帮助团队和个人记录机器学习实验的各种参数、模型训练过程中的指标以及最终结果。WandB 的设计目的是简化和加速机器学习项目的开发流程,让研究者和开发者能够更容易地分享结果、复现实验,并进行协作。 步骤 2: 注册和登录 -在开始使用WandB之前,你需要创建一个WandB账户(如果你还没有的话)。你可以在WandB官网注册。 注册成功后会出现你的账号的一个API密钥。可以点击复制这个密钥。 同时也提供了一段样例代码,

qq_62231627的博客 1万+

Wandb是啥,怎么用

使用Wandb非常简单,首先需要安装Wandb的Python包,可以通过pip或conda来安装。安装完成后,需要在Python脚本中导入wandb库,登录Wandb,创建一个项目并设置实验。在实验中,可以记录各种指标、超参数、模型权重等,并进行可视化分析。最后,可以将实验的结果保存在Wandb的云端,并与团队成员共享。在Wandb的网站上,我们可以看到实验的结果,并进行可视化分析。接下来,在训练循环中,我们记录了训练损失和准确率,然后通过调用。除此之外,还包含了训练代码中写入的所有文件和模型的权重。

Fan0920的专栏 7240

wandb教程

111111111111111

qq_42454156的博客 711
上一篇: 深度学习里面有没有支持Multi-GPU-DDP模式的pytorch模型训练代码模版?
下一篇: 30分钟吃掉wandb可视化自动调参
算法美食屋
博客等级 码龄9年 2万+粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值