一、问题描述
断点续训时将weights的default设置为了last.pt的路径并将resume的default设置为了True
parser.add_argument('--weights', type=str, default='last.pt路径')
parser.add_argument('--resume', const=True, default=True)
运行代码出现以下报错
AssertionError: ERROR: --resume checkpoint does not exist
二、问题原因
该路径下的文件不存在,没有找到这个路径的文件。
三、解决方法
1.将weights的default设置为空(若没有预训练权重)
parser.add_argument('--weights', type=str, default='')
2.将resume的default设置为了last.pt的路径
parser.add_argument('--resume', const=True, default='last.pt路径')
四、注意点
这边还有个opt.yaml要与last.pt为同一路径,不然将找不到此文件,会报错。一般来说直接保存文件不会出现这个问题,但是可能会有人只下载last.pt(比如我)就会出现这个问题。
解决方法有2个,如下所示:
1.将opt.yaml移到last.pt同一路径
这个方法比较硬核,但比较直接
2.修改opt.yaml的读取路径
ctrl F 查找关键词找到这个地方,进行修改
with open(Path(ckpt).parent.parent / 'opt.yaml小路径', errors='ignore') as f:
注:有任何问题欢迎评论区交流讨论或者私信!