一、'yolo' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
解决方法: pip install ultralytics(yolov5使用的ultralytics版本等于 8.0.209 会报错,在改为8.0.111后可用)
二、OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
意思是在yolov8的环境里存在两个libiomp5md.dll,一个是pytorch里的,一个是环境自带的,将环境自带的重命名为libiomp6md.dll后解决
三、AttributeError: Can't get attribute 'ECAAttention' on <module 'ultralytics.nn.modules.conv' from 'C:\\ProgramData\\anaconda3\\envs\\yolov5\\lib\\site-packages\\ultralytics\\nn\\modules
\\conv.py'>
在添加注意力机制后,用如下命令预测时报错
yolo task=detect mode=val model=E:\python_project\YOLO\yolov8+SioU\ECA\runs\train\8s9\weights\best.pt data=Data/MyVOC.yaml batch=8 workers=2
原因可能是调用了环境里的ultralytics库而不是v8代码内的ultralytics文件
解决方法:直接新建val.py文件来预测,这样就能调用v8内的ultralytics文件
from ultralytics import YOLO
model = YOLO(r'E:\python_project\YOLO\yolov8+SioU\ECA\runs\train\8s9\weights\best.pt') # 权重地址
results = model.val(data=r"E:\python_project\YOLO\yolov8+SioU\ECA\Data\MyVOC.yaml", imgsz=640,batch=1, conf=0.001, iou=0.5) # 参数和训练用到的一样
(附train.py test.py)
train.py
from ultralytics import YOLO
import os
os.environ['CUDA_LAUNCH_BLOCKING'] = '1' # 下面老是报错 shape 不一致
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
if __name__ == "__main__":
model = YOLO(r"Data/yolov8-att.yaml") # build a new model from scratch
# Use the model
model.train(data="Data/MyVOC.yaml", epochs=250, patience= 600,batch= 16,device=0,workers=4,project='runs/train',name='8s')
test.py
from ultralytics import YOLO
model = YOLO(r'E:\python_project\YOLO\yolov8+SioU\ECA\runs\train\8s9\weights\best.pt')
results = model(r"E:\python_project\YOLO\yolov8+SioU\ECA\Data\images\val", conf=0.05, device=0, save=True)