SSD-Pytorch训练和测试自己的数据集(新手必看)

原文链接: https://blog.csdn.net/dingkm666/article/details/88775428

目录

1.准备自己的数据集

2.pytorch环境安装即SSD-pytorch代码下载

3.正常的修改

        修改1:config.py

        修改2:VOC0712.py

        修改3:train.py

        修改4:eval.py

        修改5:ssd.py

4.遇到的问题和相应的解决办法

        问题1:

       问题2:提示自动跳出迭代

         问题3:训练是loss出现抑制为nan的情况

5.成果展示


1.准备自己的数据集

        pytorch-ssd可以支持VOC和COCO两种数据格式,所以你要将自己的数据集转化为VOC格式或者COCO格式,相应的转化脚本,请点击(注:SSD-Pytorch中含有自动下载VOC和COCO官方数据的脚本)如下图

SSD-Pytorch训练和测试自己的数据集(新手必看)_第1张图片

2.pytorch环境安装即SSD-pytorch代码下载

        点击链接登陆pytorch官网根据电脑的操作系统配置选择安装:   http://pytorch.org/

        python版本要求python3 + :https://www.python.org/

        SSD-Pytorch代码链接:https://github.com/amdegroot/ssd.pytorch

        训练模型下载链接(官方模型链接似乎失效了,推荐下载):https://download.csdn.net/download/qq_34374211/10712378

3.正常的修改

        根据经验,我们要清楚自己数据集的含有的类别,例如:我自己的数据集为VOC格式,含有8个类别。

        修改1:config.py

SSD-Pytorch训练和测试自己的数据集(新手必看)_第2张图片

        打开config.py,可以找到这样一段代码,要修改的就是num_class(类别数),更具自己数据集的实际情况进行修改。至于max_iter指的是最大迭代数,在尝试训练阶段,建议把它调低,比如调到1000,在确认训练过程没有问题之后,在调大迭代次数。这样可以有效的节约训练时间。

        修改2:VOC0712.py

SSD-Pytorch训练和测试自己的数据集(新手必看)_第3张图片

         因为我是用的VOC格式的数据集,所以要在VOC0712.py处理数据。按照自己的数据的类别进行修改。

        修改3:train.py

SSD-Pytorch训练和测试自己的数据集(新手必看)_第4张图片

         要训练自己的数据集,在这个train.py中我们必须要修改的是预训练的模型,根据自己的下载的预训练模型修改,官方提供的是VGG16_reducedfc_pth,链接已在第二部分提供。批处理数根据排至修改,batch_size越大对显卡的内存要求就越大,我使用的是NVIDIA 1080TI 12G ,batch_size大小使用32. (根据经验,batch_size大小适宜,训练效果会更好)

          在尝试阶段,为了节省时间,建议将根据迭代次数保存模型的参数调低,例如调节到500。之后正式开始训练后在调高。

        修改4:eval.py

SSD-Pytorch训练和测试自己的数据集(新手必看)_第5张图片

          在训练得到模型之后,要修改评估的模型的名。

        修改5:ssd.py

              SSD-Pytorch训练和测试自己的数据集(新手必看)_第6张图片

 

4.遇到的问题和相应的解决办法

        问题1:

        解决方法:

SSD-Pytorch训练和测试自己的数据集(新手必看)_第7张图片

                 将190,191行换成192,和193的内容,还有红框部分的相应修改(如图)

       问题2:提示自动跳出迭代

         解决方法:

         问题3:训练是loss出现抑制为nan的情况

         解决方法: 

         这个问题是由学习率够高引起的,只需降低学习率即可,loss出现一直nan会导致训练出来的模型检测不出来任何东西。 (坑了我好久) 

 

5.成果展示

SSD-Pytorch训练和测试自己的数据集(新手必看)_第8张图片

          这是最后根据训练模型得到的评估结果。

 

这是我在训练和测试自己的数据集中的碰到的问题总结,如有问题,可以发表评论,供大家参考,如有不足,请不吝赐教。

你可能感兴趣的:(深度学习/python)