YOLOV7代码跑不起来

yolo v7代码报错

Traceback (most recent call last):
  File "E:\pycharmProject\yolov7-tiny-Efiicientvit\train.py", line 615, in <module>
    train(hyp, opt, device, tb_writer)
  File "E:\pycharmProject\yolov7-tiny-Efiicientvit\train.py", line 94, in train
    model = Model(opt.cfg, ch=3, nc=nc, anchors=hyp.get('anchors')).to(device)  # create
  File "E:\pycharmProject\yolov7-tiny-Efiicientvit\models\yolo.py", line 608, in __init__
    self.yaml = yaml.load(f, Loader=yaml.SafeLoader)  # model dict
  File "D:\py\anaconda\lib\site-packages\yaml\__init__.py", line 79, in load
    loader = Loader(stream)
  File "D:\py\anaconda\lib\site-packages\yaml\loader.py", line 34, in __init__
    Reader.__init__(self, stream)
  File "D:\py\anaconda\lib\site-packages\yaml\reader.py", line 85, in __init__
    self.determine_encoding()
  File "D:\py\anaconda\lib\site-packages\yaml\reader.py", line 124, in determine_encoding
    self.update_raw()
  File "D:\py\anaconda\lib\site-packages\yaml\reader.py", line 178, in update_raw
    data = self.stream.read(size)
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 64: illegal multibyte sequence
wandb: Install Weights & Biases for YOLOR logging with 'pip install wandb' (recommended)

进程已结束,退出代码为 1

```python


各位帮忙看看什么问题

读取数据使用了错误的编码,可以尝试更改代码中读取文件的编码方式,使用正确的编码(如utf-8)
借鉴代码:

import codecs

with codecs.open('your_file_path', 'r', encoding='utf-8') as f:
    self.yaml = yaml.load(f, Loader=yaml.SafeLoader)

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7419677
  • 这篇博客也不错, 你可以看下YOLOV7训练自己的yolo数据集
  • 您还可以看一下 白勇老师的YOLOv5实战口罩佩戴检测课程中的 YOLO目标检测技术发展史小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题的报错信息是UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 64: illegal multibyte sequence。这个错误通常是由于代码中读取文件时的字符编码不匹配造成的。

    解决这个问题的方法是修改代码中读取文件时的字符编码,将其改为与文件编码一致。在这个问题中,报错信息中提到了文件位置在E:\pycharmProject\yolov7-tiny-Efiicientvit\models\yolo.py的第608行。我们可以在该文件中找到对应的代码进行修改。

    yolo.py文件的第608行,模型尝试使用yaml库加载一个yaml文件,但是在加载时指定了gbk编码。由于文件的字符编码不是gbk,所以报错了。解决方法是将gbk编码改为文件的实际编码。

    以下是修改后的代码示例:

    self.yaml = yaml.load(f, Loader=yaml.SafeLoader, encoding='文件实际编码')
    

    将上面代码中的文件实际编码替换为你的yaml文件的实际编码,比如utf-8

    另外,关于安装Weights & Biases(wandb),根据报错信息中的提示,安装wandb可以用于进行YOLOR日志记录。如果你需要使用这个功能,可以按照下面的命令安装wandb:

    pip install wandb
    

    希望这些解决方案对你有帮助。如果你有任何其他问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^