wandb是pytorch中常用的一种可视化工具,可以将我们模型中的一些参数(比如,loss函数值、AUC面积以及训练、验证和测试时一些数据)以图表的形式表示出来,能够方便大家直观地观察数据。但是使用wandb稍微有点麻烦,需要注册(这里可以直接授权用自己的GitHub账号登陆),每一次使用wandb在线运行模型的数据都将保存在wandb网址上,方便查看。

相信使用wandb的同学们大概率会遇到这个问题:

wandb: W&B API key is configured (use `wandb login --relogin` to force relogin)
wandb: Network error (ReadTimeout), entering retry loop.
wandb: Network error (ReadTimeout), entering retry loop

出现这个问题的原因是,使用wandb在线模式运行代码,服务器是一边运行我们的代码一边向wandb官网上传我们的数据,导致服务器显卡占用比特别大。尤其是学校里的服务器,一旦有其他同学在使用,运行带有wandb模块的代码(尤其这个模型数据集很大的情况)就很容易报这样的错。

解决办法:

在主函数下添加两行代码,使得模型离线运行wandb模块。

os.environ["WANDB_API_KEY"] = '+++++++++++' # 将引号内的+替换成自己在wandb上的一串值
os.environ["WANDB_MODE"] = "offline"   # 离线  (此行代码不用修改)

修改保存后,再运行就能正常了,此时模型就只会单纯地运行,不会一边运行一边上传数据。模型运行完,再按照提示输入指令即可将运行结果上传到wandb,不会产生任何影响。

希望能给大家一点帮助。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐