yolov7代码的wandb报错
之前我跑代码没问题,今天测试代码出了这个bug。。。
解决方法
第一步 登录wandb在线网站
wandb init
运行下面命令找到网址
地址如下
需要注册谷歌账号,完成注册,
第二步 复制自己的key值
复制注册码
第三步 修改train.py代码
wandb.login(key='你自己的key值')
logger = logging.getLogger(__name__)
第四步 改线上为线下
到这一步还会遇到bug: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,不会产生任何影响。