wandb.log()的异常

wandb.log 在记录log时有这样一个问题:

code-1


wandb.log({"total_loss": total_loss})
wandb.log({"lr": optimizer.param_groups[0]['lr']})             

code-2


wandb.log({"lr": optimizer.param_groups[0]['lr']})             

在实际显示的时候,code-1中的step数目是code-2step数目的一半,明显的感受是lr的变化斜率是呈2倍关系的:

wandb.log()的异常_第1张图片

这是因为wandb.bog()中有一个 global step 的变量。每次使用wandb.log都会影响global step,因此不同的log记录会相互影响。

解决的办法有两种:
solution-1: 把所有要用log记录的变量写在一起:

wandb.log({"total_loss": total_loss},
          {"lr": optimizer.param_groups[0]['lr']}
          )             

solution-2: 除了最后一个变量外,其他log在记录变量时加上一个commit=False。(如果都加commit=False显示不出东西):

wandb.log({"total_loss": total_loss},commit=False)
wandb.log({"lr": optimizer.param_groups[0]['lr']})            

解决啦!

你可能感兴趣的:(深度学习训练工具,深度学习,pytorch,人工智能)