Weights & Biases (wandb) 是机器学习实验管理平台,支持自动记录实验配置、可视化训练过程、超参数搜索。
快速开始
pip install wandb
wandb loginimport wandb
wandb.init(project="my_project", config={
"batch_size": 32,
"learning_rate": 0.001,
"epochs": 10,
})记录训练指标
for epoch in range(epochs):
train_loss = train_one_epoch()
val_loss, val_acc = validate_model()
wandb.log({
"epoch": epoch,
"train_loss": train_loss,
"val_loss": val_loss,
"val_accuracy": val_acc
})超参数搜索 (Sweep)
定义搜索空间
sweep_config = {
'method': 'bayes', # grid/random/bayes
'metric': {'name': 'val_accuracy', 'goal': 'maximize'},
'parameters': {
'batch_size': {'values': [16, 32, 64, 128]},
'learning_rate': {'min': 1e-5, 'max': 1e-1},
'epochs': {'value': 10}
}
}启动 Sweep
sweep_id = wandb.sweep(sweep_config, project="my_project")
wandb.agent(sweep_id, function=train, count=10)训练函数模板
def train():
wandb.init()
config = wandb.config
for epoch in range(config.epochs):
loss = train_one_epoch(config.batch_size, config.learning_rate)
wandb.log({"loss": loss})早停机制
wandb.init(
project="my_project",
early_stopping_metric="val_loss",
early_stopping_threshold=0.01
)核心功能
| 功能 | 说明 |
|---|---|
| 实验记录 | 自动记录配置、指标、输出 |
| 可视化 | 训练曲线、参数重要性、并行坐标图 |
| Sweep | 自动超参数搜索(Grid/Random/Bayes) |
| Artifacts | 模型版本管理、数据集追踪 |
| Reports | 实验报告生成与分享 |
Web 界面分析
- Sweep Overview:查看不同超参数组合性能
- Hyperparameter Importance:分析参数对性能的影响
- Parallel Coordinates Plot:多维度性能对比