该库 fork 自 @github/marvis 的 pytorch-yolo2,不过作者没有直接修改或者更新 marvis 的源文件,因为很多文件已经改了文件名。所以本库和源文件有很大的差异,主要差异有以下几点:
某些程序是针对 Windows 环境重新构建的,例如 __name__ =='__ main __'(python程序中的变量)用于检查多线程;
加载和保存权重被修改为与 yolov2 和 yolov3 版本兼容(意味着此存储库适用于 yolov2 和 yolov3 配置而无需修改源代码。);
完全支持 yolov3 检测和训练;
region_loss.py 重命名为 region_layer.py;
region_layer.py 和 yolo_layer.py 的输出包含在字典变量中;
代码被修改为在 pytorch 0.4 和 python3 上工作;
修改了一些代码以加快读数并简化读数。 (我不确定.. T_T)
在训练模式下,检查 nan 值并使用梯度裁剪。
如果您想了解训练和检测程序,请参阅 https://github.com/marvis/pytorch-yolo2 了解详细信息。
Github 链接:
https://github.com/andy-yun/pytorch-0.4-yolov3
按如下方式训练你的数据、coco、voc data:
python train.py -d cfg/coco.data -c cfg/yolo_v3.cfg -w yolov3.weights
新的权重保存在备份目录中以及时期编号(保存最后 5 个权重,您可以控制train.py中的备份数量)
上面的命令显示了培训过程的示例。 我没有执行上面的命令。 但是,我用预训练的yolov3.weights成功地训练了自己的数据。
您应该注意到,在yolov2或yolov3模型中使用时,锚信息是不同的。
如果要将预训练的权重用作初始权重,请在training命令中添加-r选项
python train.py -d cfg/my.data -c cfg/my.cfg -w yolov3.weights -r
最大的 epochs 选项是自动计算的,有时候会很小,所以你要在设置中修改 max_epochs。
为我自己的数据记录了 yolov2 和 yolov3 训练
单击图像后,视频将在 yoube.com 上播放
yolo2 训练记录,链接:
https://www.youtube.com/watch?v=jhoaVeqtOQw
yolo3 训练记录,链接:
https://www.youtube.com/watch?v=zazKAm9FClc
详细信息请查阅官方 Github 页面:
https://github.com/andy-yun/pytorch-0.4-yolov3