问题描述:
使用服务器(例如AutoDL)进行yolov8训练,添加了自定义的模块之后出现KeyError报错
导致问题的原因
在我们向Yolov8中添加注意力机制时,即便我们在克隆的项目的nn/modules/init.py以及nn/tasks.py中正确的导入了注意力机制,仍然会报错:“Keyerror”,似乎注意力机制仍然没有正确的导入。
这是因为我们在配置虚拟环境时,使用了代码
pip install ultralytics
在这个过程中,“ultralytics”包会被安装到虚拟环境中。这里要注意,虚拟环境中的“ultralytics”以及我们克隆的代码的“ultralytics”。前者是因为配置虚拟环境而安装的,后者是我们从Github上克隆的工程。
当我们在克隆的项目中导入了注意力机制时,我们并没有在虚拟环境的ultralytics包中导入注意力机制。但是在项目文件的init.py中,仍然会默认从虚拟环境的“ultralytics”中去寻找注意力机制。
解决方法
第一步:
pip install --upgrade pip
第二步:
pip install -e /path/to/your/ultralytics
后面的路径换成你的yolov8工程所在的路径
或者
pip install -e .
成功解决!