YOLOv3的训练、测试、fine-tuning过程中遇到的问题

先占个坑。

  1. train时遇到错误:UserWarning: indexing with dtype torch.uint8 is now deprecated, please use a dtype torch.bool instead
    在这里插入图片描述
    解决方法: https://blog.csdn.net/BBZZ2/article/details/101022935

  2. 用自己的数据集训练,改变了类别数。训练时会出现错误如下:

    RuntimeError: CUDA error: device-side assert triggered.
    YOLOv3的训练、测试、fine-tuning过程中遇到的问题_第1张图片
    目前找到的有效的解决方法有两个:

    1. 在utils/utils.py中,在相应位置添加下面代码:
      https://github.com/eriklindernoren/PyTorch-YOLOv3/issues/157
      b, target_labels = target[:, :2].long().t()
      gx, gy = gxy.t()
      gw, gh = gwh.t()
      gi, gj = gxy.long().t()
      ########## TODO(arthur77wang):
      gi[gi < 0] = 0
      gj[gj < 0] = 0
      gi[gi > nG - 1] = nG - 1
      gj[gj > nG - 1] = nG - 1
      ###################
      obj_mask[b, best_n, gj, gi] = 1
      noobj_mask[b, best_n, gj, gi] = 0

    2. 减小学习率,在config中将学习率调到0.0001或者0.00001以下皆可,无报错。
      https://github.com/eriklindernoren/PyTorch-YOLOv3/issues/251

    3. 出错原因大概是索引越界,有人说是标签类别打错了,但对于我不存在,我的数据集就一类,类别索引为0.可供参考的一些方法:
      https://cloud.tencent.com/developer/ask/209521
      https://blog.csdn.net/qq_22821801/article/details/90212788
      https://blog.csdn.net/u011394059/article/details/78664642
      https://blog.csdn.net/Geek_of_CSDN/article/details/86527107

你可能感兴趣的:(目标检测)