神经网络实践笔记--SSD.PyTorch全流程跑通--从建数据集、模型参数修改到可视化

总体流程我也都是跟着网上dalao们的资料走的,但是也遇到很多问题,因此在这里记录一下我的整体流程,有些内容要在dalao们的代码基础上进行修改。

环境搭建:

ssd.pytorch许多代码是有一定年纪的了,因此最好不要配置最新的pytorch,我使用的pytorch1.2,Cuda10.0的版本
先装上Conda,然后在启动Conda环境后安装pytorch:

# CUDA 10.0
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch
# CPU Only 不用显卡加速的应该是这个,不过ssd是需要CUDA的所以不要用这个
conda install pytorch==1.2.0 torchvision==0.4.0 cpuonly -c pytorch

不同版本的安装代码可以在PyTorch.org官方网站找到

数据集制作:

实践证明如果数据集做错,最后往往能训练但是跑测试时AP全为0。

我使用的时VOC2007标准的数据集,事前最好完全了解一遍这个标准各个文件的作用和内容,否则很容易数据集做错。
https://blog.csdn.net/duanyajun987/article/details/81507656
这篇文章记录了总体流程。
xml标记只能向上述文章里一样慢慢标记。
这里再记录一个windows系统下的形成四个训练测试图片名称文本文件的生成方法
1.在图片文件夹(JPEGImages)下面写一个.bat文件

在这里插入图片描述

#z.bat
dir *.*/b>all.txt.

运行后自动创建一个命名为all.txt的文本文件,里面是所有的图片名称加后缀
在这里插入图片描述
用查找替换,把后缀(.jpg)替换为空
在这里插入图片描述
这样文件名都获取到,就是整个数据集所有的图片名称了。
然后按照"trainval大约占整个数据集的50%,test大约为整个数据集的50%;train大约是trainval的50%,val大约为trainval的50%"的比例,把
test.txt:测试集
train.txt:训练集
val.txt:验证集
trainval.txt:训练和验证集
四个文件建好,
里面就按上述规则放入图片名字。(trainval和test别重复了)在这里插入图片描述

SSD代码修改:

https://blog.csdn.net/qq_21464351/article/details/104838456
这篇博客写的很详细。照着做就行。
但实际操作下来,这篇博客对multibox_loss.py的修改不很对,
对在99行上方不是插入内容,应该覆盖原来的loss_c的设置。(下图注释掉了)
在这里插入图片描述

此外在训练过程可视化上,不知道visdom是什么问题,反正就不行。
不过这不影响训练模型。

额外修改内容config.py:

在这里插入图片描述
windows下这个HOME会指向我们的用户文件夹,在后面会引起很多路径问题,最好在config.py中直接改成ssd的根目录。

额外修改内容train.py:

在这里插入图片描述
这里有个num_workers,原来是4,有说法说,如果不是0的话,可能遇到多线程的问题,
具体表现是不管batch_size多低,显卡显存多么充足,都无法分配显存。
所以最好改到0。

训练模型:

上面都改完了后,启动Conda环境,就应该可以开始运行了:
在这里插入图片描述

模型训练结果可视化:

https://zhuanlan.zhihu.com/p/93883352
直接跟着这位dalao走一遍。(主要就是把他最后一段代码复制覆盖到我们的demo/live.py)
记得设置自己的个性化内容:
49行的frame是结果可视化的图片源
在这里插入图片描述
59行的net建立神经网络的方法调用里,没有用config里面的全局设定,把build_ssd最后一个参数改成和config.py里类数量一样(自己模型的类别+1)
在这里插入图片描述
运行:
在这里插入图片描述

在这里插入图片描述

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值