GitHub (opens new window)

使用Weight&Bias记录实验数据

Leonhardt 2022-04-06 Python
  • Python
  • Pytorch
  • Visualization
About 2 min

# 准备工作

# 界面

Project

每个Project下会包含很多Run,每个Run对应代码中的一个wandb.init()。通常,每次训练可以使用一个run,保存使用的数据集可以使用另一个run,训练出一个比较好的模型后,也可以用一个run保存。一次只能同时存在一个run,如果在代码中又打开一个新的run,则旧的会先停止。

# 基本使用

import wandb
wandb.init(project='project_name', group='group_name',
              job_type='job_type', config=dict(xxx))
wandb.log({'accuracy': train_acc, 'loss': train_loss})
1
2
3
4

# sweep

超参数搜索。

# 准备

sweep_config = {
'method': 'random',
'metric': {'goal': 'minimize', 'name': 'loss'},
'parameters': 
{
  'batch_size': {'distribution': 'q_log_uniform_values', 'max': 256, 'min': 32, 'q': 8},
  'dropout': {'values': [0.3, 0.4, 0.5]},
  'epochs': {'value': 1},
  'fc_layer_size': {'values': [128, 256, 512]},
  'learning_rate': {'distribution': 'uniform', 'max': 0.1, 'min': 0},
  'optimizer': {'values': ['adam', 'sgd']}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 启动

sweep_id = wandb.sweep(sweep_config, project='project_name')
wandb.agent(sweep_id, function=train, count=8)
1
2