wandb可视化自动调参

文章介绍了如何使用wandb的sweep功能进行低代码、可视化的超参数调优,包括配置sweep_config、初始化sweep_controller和启动sweep_agents的步骤。wandb支持随机搜索、网格搜索和贝叶斯搜索等调优算法,以及定义调优目标、超参数空间和剪枝策略。此外,文章还强调了wandb的分布式特性及其实时监控和可视化优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

详解使用wandb的sweep进行超参调优的步骤

wandb.sweep: 低代码,可视化,分布式 自动调参工具。

使用wandb 的 sweep 进行超参调优,具有以下优点。

(1)低代码:只需配置一个sweep.yaml配置文件,或者定义一个配置dict,几乎不用编写调参相关代码。

(2)可视化:在wandb网页中可以实时监控调参过程中每次尝试,并可视化地分析调参任务的目标值分布,超参重要性等。

(3)分布式:sweep采用类似master-workers的controller-agents架构,controller在wandb的服务器机器上运行,agents在用户机器上运行,controller和agents之间通过互联网进行通信。同时启动多个agents即可轻松实现分布式超参搜索。

使用 wandb 的sweep 调参的缺点:

需要联网:由于wandb的controller位于wandb的服务器机器上,wandb日志也需要联网上传,在没有互联网的环境下无法正常使用wandb 进行模型跟踪 以及 wandb sweep 可视化调参。

使用Sweep的3步骤

  1. 配置 sweep\_config
    
配置调优算法,调优目标,需要优化的超参数列表 等等。  
  1. 初始化 sweep controller:
    
sweep_id = wandb.sweep(sweep_config,project)  
  1. 启动 sweep agents:
    
wandb.agent(sweep_id, function=train)  
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   
  
wandb.login()  
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'  
)  
  

一. 配置 Sweep config

详细配置文档可以参考:https://docs.wandb.ai/guides/sweeps/define-sweep-configuration

1,选择一个调优算法

Sweep支持如下3种调优算法:(1)网格搜索:grid. 遍历所有可能得超参组合,只在超参空间不大的时候使用,否则会非常慢。(2)随机搜索:random. 每个超参数都选择一个随机值,非常有效,一般情况下建议使用。(3)贝叶斯搜索:bayes. 创建一个概率模型估计不同超参数组合的效果,采样有更高概率提升优化目标的超参数组合。对连续型的超参数特别有效,但扩展到非常高维度的超参数时效果不好。

sweep_config = {  
    'method': 'random'  
    }  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值