Wandb:make visualization better than Tensorboard
wandb :一个在线的可多人协作的多功能可视化工具包
我最开始使用的tensorboard,还写了一些相关tensorboard的脚本用于实验。tensorboard这里就不详细介绍了,相信大家都比较了解。直到尝试了wandb。
更自动化的实验记录
话不多说,直接上图:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A70CDj6c-1675495209895)(C:/Users/BlackFriday/AppData/Roaming/Typora/typora-user-images/image-20230204150021535.png)]](https://img-blog.csdnimg.cn/c82d8c5a4af24c3c8a5992a7432a38b7.png)
配置文件:
之前的配置文件都是用字典跟模型一起保存,要查看的时候要得加载模型,比较麻烦。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MMAs4e3J-1675495209897)(C:/Users/BlackFriday/AppData/Roaming/Typora/typora-user-images/image-20230204150034518.png)]](https://img-blog.csdnimg.cn/460bebdd2d5a4c8ba8fc889c3641dfea.png)
实验结果:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hXDsrQkZ-1675495209898)(C:/Users/BlackFriday/AppData/Roaming/Typora/typora-user-images/image-20230204150145828.png)]](https://img-blog.csdnimg.cn/8c062d2c3fe74a53b576ef941d46664a.png)
运行log(可下载):
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dqkjKHh5-1675495209899)(C:/Users/BlackFriday/AppData/Roaming/Typora/typora-user-images/image-20230204150440019.png)]](https://img-blog.csdnimg.cn/8bde618fb94e4545bc1de620a44869b8.png)
系统状况(虽然感觉没啥用):
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XU5sVLa5-1675495209900)(C:/Users/BlackFriday/AppData/Roaming/Typora/typora-user-images/image-20230204150235217.png)]](https://img-blog.csdnimg.cn/3bf1da4797214beda96787fe54b384b6.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AN4YOCU9-1675495209901)(C:/Users/BlackFriday/AppData/Roaming/Typora/typora-user-images/image-20230204150301410.png)]](https://img-blog.csdnimg.cn/b0008e8b4e2242b3ae5ea6f617e67628.png)
Sweep
参数搜索,我最喜欢的地方。
但你不懂参数设置,并且在打kaggle的时候加入多种trick,但是不知道怎么组合有效,就需要不停的关注和跟进实验情况,但是使用sweep进行相关设置之后,就可以比较放心的干其他事。想起来的时候看一眼即可,其会根据你设置的config进行搜索,并根据搜索情况列出相关参数对模型的重要程度已经相关性。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e3HWz6Hq-1675495209901)(C:/Users/BlackFriday/AppData/Roaming/Typora/typora-user-images/image-20230204150824148.png)]](https://img-blog.csdnimg.cn/ee0e26fb6e864f5c8ef5500e0923e2eb.png)
下面给大家打个样(蒸的很关键),差不多就是这样,上手简单,相关参数请自行查阅org doc:
Define sweep configuration - Documentation (wandb.ai)
WANDB_SWEEP_PROJECT = 'rsna-breast-cancer-sweeps'
WANDB_PROJECT = 'RSNA-breast-cancer'
def main(config):
train_data,train_label,test_data,test_label(config)
model = build_model(config)
optim,schedule = build_opt_schedule(model,config)
with wandb.init(project=WANDB_PROJECT, name=name,group=WANDB_RUN_NAME) as run:
for epoch in range(epoch_num):
train_one_epoch(model,eptim,schedule,config)
test_one_epoch(model,config)
save_model(model)
run.log({
'eval_cancer_loss': cancer_loss,
'eval_f1': f1,
'max_eval_f1': best_eval_score,
'eval_f1_thres': thres,
'eval_loss': loss,
'eval_aux_loss': aux_loss,
'epoch': epoch
})
sweep_id = wandb.sweep(sweep={
'method': 'bayes',
'name': 'rsna-sweep',
'metric': {
'goal': 'maximize',
'name': 'max_eval_f1'
},
'parameters': {
'ONE_CYCLE_PCT_START': {
'values': [0.05,0.1,0.15]
},
'EPOCHS': {
'min': 2,
'max': 12,
'distribution': 'q_log_uniform_values'
},
'DROPOUT': {
'values': [0.1, 0.2,0.3]
}
'POSITIVE_TARGET_WEIGHT': {
'min': 1.,
'max': 40.,
'distribution': 'uniform'
},
'SMOTHING': {
'min': 0.01,
'max': 0.1,
'distribution': 'log_uniform_values'
},}
},
project=WANDB_SWEEP_PROJECT)
print('Generated sweep id', sweep_id)
def wandb_callback():
with wandb.init() as run:
config = run.config
print('params', config)
main(config)
# Start sweep job.
wandb.agent(sweep_id,
project=WANDB_SWEEP_PROJECT,
function=wandb_callback,
count=100000)
END
然后,我只是刚刚开始尝试使用,不是所有的功能都使用过,还有一些其他功能请根据org doc执行探索。
- Visualize & Analyze Tables
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B4fIyAlG-1675495209902)(C:/Users/BlackFriday/AppData/Roaming/Typora/typora-user-images/image-20230204145414021.png)]](https://img-blog.csdnimg.cn/82e1c03ff7ab4be9b2e4f78dee536e83.png)
- Collaborate on reports

pData/Roaming/Typora/typora-user-images/image-20230204145730735.png" alt=“image-20230204145730735” style=“zoom:50%;” />



















