wandb:可视化和超参数寻优

参考博客:https://zhuanlan.zhihu.com/p/591047340

1、注册账号

首先,去wandb官网注册一个账号,选择个人使用即可(根据个人需要)
然后,登录得到一个API key

2、wandb使用

(1)命令行安装

pip install wandb

(2)在代码中使用

import wandb

方法一:我觉得最简单了

wandb.init()	# 初始化wandb

valid_h10, valid_mrr = f_valid(...)		# 验证集结果

# 下面这些字段都会以图表形式记录其变化
wandb.log({
	'Eval|hits@10': valid_h10,
	'Eval|mrr': valid_mrr,
})

如:
wandb:可视化和超参数寻优_第1张图片

方法二:使用wandblogger

——下图是知识图谱表示学习框架NeuralKG中的使用方法,
wandb:可视化和超参数寻优_第2张图片
更详细的可以参考博客:Wandb(Weights & Biases) 深度学习轻量级可视化工具(Sweeps & Artifacts)

(3)超参数寻优

我这里用的是config.yaml文件
【用网格搜索快一点,贝叶斯搜索不支持并行——官网说法】

command:
  - ${env}
  - ${interpreter}
  - ${program}
  - ${args}
program: main.py	# 执行的主文件
method: bayes	# 搜索方法,如:贝叶斯搜索
metric:		# 搜索目标:最大化哪一个指标
  goal: maximize
  name: Eval|hits@10	# 这个字段要在第(2)步中显式log
# 下面都是执行main.py文件的超参数,对于不需要寻优的参数直接输入
# 需要寻优的用中括号
parameters:	
  dataset_name:
    value: aptnotes
  model_name:
    value: TransH
  max_epochs:
    value: 100
  loss_name:
    values: [Adv_Loss, Margin_Loss]
  train_sampler_class:
    values: [UniSampler, BernSampler]
  emb_dim:
    values: [200, 400, 600]
  lr:
    values: [1e-4, 5e-5, 1e-6]
  train_bs:
    values: [1024, 512]
  num_neg:
    values: [64, 128]

然后在命令行中,输入以下代码:

wandb sweep --project project-name config.yaml

这里的project-name替换成你自己的项目名称,config.yaml需要详细到相对路径。
以上命令需要在program(这里是main.py文件)的路径下执行。
执行以上命令后会得到一个agent id,如下:
在这里插入图片描述
把这行黄色的字复制到命令行执行,就开始以不同的参数执行主文件啦!以下是部分执行过程
wandb:可视化和超参数寻优_第3张图片

(4)结果查看

https://wandb.ai/home
wandb:可视化和超参数寻优_第4张图片

你可能感兴趣的:(pytorch,深度学习,机器学习,python)