经过漫长的环境配置和调试终于跑通了。参考复现链接:https://github.com/eriklindernoren/PyTorch-YOLOv3
环境配置
主要版本
pytorch 1.3.1
tensorflow-gpu 1.13
python 3.6
本地安装命令
conda install pytorch torchvision cudatoolkit=9.0 python=3.6 tensorflow-gpu=1.13
conda install tqdm
pip install terminaltables
报错记录
报错:
TypeError: narrow(): argument ‘start’ (position 2) must be int, not numpy.int64
修改:
位置:datasets.py修改Line21
将pad = (0, 0, pad1, pad2) if h <= w else (pad1, pad2, 0, 0)修改为:
pad = (0, 0, int(pad1), int(pad2)) if h <= w else (int(pad1), int(pad2), 0, 0)
报错:
OSError: image file is truncated (7 bytes not processed)
修改:
位置:datasets.py Line13添加这两行
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
报错:
修改:
位置:models.py Line211将
recall50 = torch.sum(iou50 * detected_mask) / (obj_mask.sum() + 1e-16)
recall75 = torch.sum(iou75 * detected_mask) / (obj_mask.sum() + 1e-16)
修改为:
recall50 = torch.sum(iou50 * detected_mask) / (obj_mask.float().sum() + 1e-16)
recall75 = torch.sum(iou75 * detected_mask) / (obj_mask.float().sum() + 1e-16)
一个警告
UserWarning: indexing with dtype torch.uint8 is now deprecated, please use a dtype torch.bool instead.