新工程加载YOLOV6的预训练权重问题

1. 问题背景

美团发布的YOLOV6又提供了几个Trick,本着学习的态度对YOLOv6进行学习,可是在加载预备训练权重的时候,一直报错,经过一下午+一晚上的调试找到一个简单易实现的方法。

报错问题:

 File "/home/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 426, in load
    return _load(f, map_location, pickle_module, **pickle_load_args)
  File "/home/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 613, in _load
    result = unpickler.load()
ModuleNotFoundError: No module named 'yolov6'

2.本着遇见问题先百度的态度,经过一番百度,有以下几个方法:

https://blog.csdn.net/hpccph15/article/details/124181484

ModuleNotFoundError: No module named 'models' · Issue #18325 · pytorch/pytorch · GitHub

我照着做了,但是仍然报错,直到后来,有人在yolov6的github中提出了这个问题,链接:

一旦脱离了yolov6的repo,torch.load('path/to/yolov6s.pt')将失效报错 · Issue #278 · meituan/YOLOv6 · GitHub

在这个issue中,大佬指出了问题的关键,

其实yolov5 6.0版本中,仍然是这么个写法 ,以前用的时候居然每遇到这个问题。

3.知道原因了,那就解决问题 

说实话,我不会解决这个问题,后来我一想,既然保存了原来工程文件的配置,那么直接用yolov6的源码进行加载不就行了麻,我采取最苯的办法,将YOLOV6源码中的yolov6文件夹直接拷贝到了我自己的工程中,果然它能正确加载了,就像这样,放到根目录下就可以了。

如果有大佬会解决这个问题,请您教我一下,感激不尽!

 

你可能感兴趣的:(python,深度学习)