SSD-pytorch复现笔记1

代码:https://github.com/amdegroot/ssd.pytorch
复现的过程按照github的步骤进行即可。

下载数据

由于我之前下载过voc0712、coco的数据,不需要再运行sh下载,按照sh指示建立相关文件夹。将sh所需下载的文件放进去,并将3个sh文件部分代码进行注释:
在这里插入图片描述在这里插入图片描述在这里插入图片描述再运行sh,对文件进行操作即可。

训练之前,需要修改代码

1、在multibox_loss.py中调换97,98两行,改成如下:

loss_c = loss_c.view(num, -1)  # The line added
loss_c[pos] = 0  # filter out pos boxes for now

2、在multibox_loss.py中116行改为如下:

N = num_pos.data.sum().float()

3、train.py中169行改为:

try:
    images, targets = next(batch_iterator)
except StopIteration:
    batch_iterator = iter(data_loader)
    images, targets = next(batch_iterator)

4、train.py中192,193行改为:

loc_loss += loss_l.data
conf_loss += loss_c.data

5、train.py中199行改为:

print('iter ' + repr(iteration) + ' || Loss: %.4f ||' % (loss.data), end=' ')

6、train.py中45行改为:
训练时loss出现一直nan会导致训练出来的模型检测不出来任何东西,只需降低学习率即可。

parser.add_argument('--lr', '--learning-rate', default=1e-4, type=float,  # 1e-3
                    help='initial learning rate')

差不多了,可以训练了,先打开Visdom。

python -m visdom.server
python train.py

结果显示:
在这里插入图片描述使用训练的网络进行评估:

SSD300受VOC0712(最新的PyTorch权重)训练: https://s3.amazonaws.com/amdegroot-models/ssd300_mAP_77.43_v2.pth
将ssd300_mAP_77.43_v2.pth下载到weights文件夹下。
然后

python eval.py

在这里插入图片描述当然,如果你自己训练好了的模型,更改eval.py中39行加载的权重文件,在进行评估。
经过120000轮训练,最终得到VOC.pth的权重文件,我的第一次训练模型评估结果:
在这里插入图片描述显然不如人家已给出的ssd300_mAP_77.43_v2.pth表现好。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值