下载SSD代码:将下载的代码解压后在data文件夹下新建VOCdevkit文件夹,然后将VOC2007数据集复制到该文件夹下面。

下载权重文件放在weights文件夹下面。下载地址:

https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth

修改config.py代码# SSD300 CONFIGSvoc={'num_classes':3,//将类别改为:类别+1(背景)

'lr_steps':(80000,100000,120000),'max_iter':120000,//迭代次数

'feature_maps':[38,19,10,5,3,1],'min_dim':300,'steps':[8,16,32,64,100,300],'min_sizes':[30,60,111,162,213,264],'max_sizes':[60,111,162,213,264,315],'aspect_ratios':[[2], [2,3], [2,3], [2,3], [2], [2]],'variance':[0.1,0.2],'clip': True,'name':'VOC',

}

修改VOC0712.py代码。'''

VOC_CLASSES = ( # always index 0

'aeroplane', 'bicycle', 'bird', 'boat',

'bottle', 'bus', 'car', 'cat', 'chair',

'cow', 'diningtable', 'dog', 'horse',

'motorbike', 'person', 'pottedplant',

'sheep', 'sofa', 'train', 'tvmonitor')

'''VOC_CLASSES=(# always index 0'aircraft','oiltank')//修改为自己数据集的类别。

# note: if you used our download scripts, this should be right

#VOC_ROOT = osp.join("", "data/VOCdevkit/")VOC_ROOT="data/VOCdevkit/" #修改为Win10路径

def__init__(self,root,image_sets=[('2007','trainval'), ('2012','trainval')],transform=None,target_transform=VOCAnnotationTransform(),dataset_name='VOC0712'):

修改为:

def__init__(self,root,image_sets=[('2007','trainval')],transform=None,target_transform=VOCAnnotationTransform(),dataset_name='VOC2007'):

修改coco.py

COCO_ROOT='data/'

修改ssd.py将32行的self.cfg=(coco,voc)[num_classes==21]

修改为self.cfg=(coco,voc)[num_classes==3]#3是我数据集的类别+1

修改multibox_loss.py在97行的loss_c[pos]=0# filter out pos boxes for now

位置之上加入loss_c = loss_c.view(pos.size()[0], pos.size()[1])

如果没有这句话会引起张量不匹配的问题

如:

IndexError: The shape of the mask [4, 8732] at index 0 does not match the shape of the indexed tensor [34928, 1] at index 0

修改trian.py

修改配置参数:

parser.add_argument('--dataset',default='VOC',choices=['VOC','COCO'],type=str,help='VOC or COCO')#改为VOC

parser.add_argument('--batch_size',default=4,type=int,help='Batch size for training')#Batch Size按照显存的大小设置合适的值。

parser.add_argument('--start_iter',default=0,type=int,help='Resume training at this iter')#迭代开始

parser.add_argument('--num_workers',default=4,type=int,help='Number of workers used in dataloading')

parser.add_argument('--cuda',default=True,type=str2bool,help='Use CUDA to train model')

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

parser.add_argument('--momentum',default=0.9,type=float,help='Momentum value for optim')

parser.add_argument('--weight_decay',default=5e-4,type=float,help='Weight decay for SGD')

parser.add_argument('--gamma',default=0.1,type=float,help='Gamma update for SGD')

parser.add_argument('--visdom',default=False,type=str2bool,help='Use visdom for loss visualization')

parser.add_argument('--save_folder',default='weights/',help='Directory for saving checkpoint models')#保存权重的位置。

args=parser.parse_args()

将:

修改为:

loc_loss+=loss_l.item()conf_loss+=loss_c.item()ifiteration%10==0:print('timer: %.4f sec.'%(t1-t0))print('iter '+repr(iteration)+' || Loss: %.4f ||'%(loss.item()),end=' ')

不修改会引起错误:

.IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number

将165行的

images, targets = next(batch_iterator)

更改成:

try:

images, targets = next(batch_iterator)

except StopIteration:

batch_iterator = iter(data_loader)

images, targets = next(batch_iterator)

如果不改会引起跳出迭代的问题:

Traceback (most recent call last):

File "E:/ssd.pytorch-master/ssd.pytorch-master/train.py", line 246, in

train()

File "E:/ssd.pytorch-master/ssd.pytorch-master/train.py", line 159, in train

images, targets = next(batch_iterator)

File "D:\Users\WH\anaconda3\lib\site-packages\torch\utils\data\dataloader.py", line 345, in __next__

data = self._next_data()

File "D:\Users\WH\anaconda3\lib\site-packages\torch\utils\data\dataloader.py", line 831, in _next_data

raise StopIteration

StopIteration

如果遇到loss为nan的现象,就需要降低出示学习率。

将10e-3改为10e-4

python装在固态还是机械_手把手教你使用SSD(新手必看)相关推荐

  1. 抖音小店无货源——手把手教你开店,新手必看这七点

    大家好,我是凡凡,电商创业的第六年 "想要开一家抖音小店无货源,信息太繁杂了,我要准备什么东西?" 这是很多新手在正式开店之前都会有这样的问题,就像过年买年货一样,只要等到最后一天 ...

  2. python网络爬虫网易云音乐_手把手教你写网络爬虫(1):网易云音乐歌单

    大家好,<手把手教你写网络爬虫>连载开始了!在笔者的职业生涯中,几乎没有发现像网络爬虫这样的编程实践,可以同时吸引程序员和门外汉的注意.本文由浅入深的把爬虫技术和盘托出,为初学者提供一种轻 ...

  3. python装在固态还是机械好_大容量与高性能SSD硬盘的比较

    人们需要了解企业级硬盘的发展趋势.高性能存储设备的应用方式,以及底层NAND闪存技术进步的影响. 固态硬盘(SSD)如今已大部分取代了用于企业应用程序工作负载的机械硬盘(HDD),并且对大容量数据存储 ...

  4. python刷题一亩三分地_手把手教你用python抓网页数据【一亩三分地论坛数据科学版】...

    前言:. visit 1point3acres.com for more. 数据科学越来越火了,网页是数据很大的一个来源.最近很多人问怎么抓网页数据,据我所知,常见的编程语言(C++,java,pyt ...

  5. python网站有中文界面吗_手把手教你用python开发界面程序

    在本教程中 我们将通过使用Tkinter包编写一些python GUI示例来学习如何开发图形用户界面. Tkinter包是作为标准包随Python一起提供的 所以我们不需要安装任何东西来使用它. Tk ...

  6. python执行js脚本安全吗_手把手教你如何使用Python执行js代码

    前言 各位小伙伴,大家好,这次咱们来说一下关于爬虫方向的一个知识,Python如何执行js,快来看看吧!!! 为什么要引出Python执行js这个问题? 都说术业有专攻,每个语言也都有自己的长处和短处 ...

  7. python开源报表系统详细操作流程_手把手教你实现自动化报表系统

    今天给大家安利一套自动化报表的实现过程. 说到报表,大家脑海里一定浮现了各种高大上的财务报表,不管他们如何实现的,本文却要教你实现自己的报表系统.对于土豪公司来说,这些都是小case,因为商业的工具平 ...

  8. python程序显示自己的版权_手把手教你Pycharm皮肤主题及个性化设置,python程序员必备-Go语言中文社区...

    1.设置IDE皮肤主题 File -> Settings -> Appearance -> Theme -> 选择"Alloy.IDEA Theme" 根据 ...

  9. python爬取音乐源码_手把手教你使用Python抓取QQ音乐数据(第一弹)

    [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二.需要的库] 主要涉及的库有:requests.json ...

最新文章

  1. STL初探——构造和析构的基本工具: construct()和destroy()
  2. web主题公园版权信息破解:script.js加密文件
  3. 基于 Java NIO 实现简单的 HTTP 服务器
  4. python udp 传输文件_python网络编程:UDP方式传输数据
  5. 如何删除 Windows.old 文件夹
  6. OpenCASCADE:简介
  7. mysql函数封装_Mysql对文件操作的封装
  8. [转]让你赚大钱成富翁的4个投资习惯
  9. border,padding,margin盒模型理解
  10. C++ _countf
  11. HDU1420 Prepared for New Acmer【快速模幂】
  12. join left semi_Hive的left join、left outer join和left semi join三者的区别
  13. 合肥青少年信息学计算机竞赛试题,合肥市第二十九届青少年信息学奥林匹克竞赛(小学组)试题及部分答案...
  14. IPv6/IPv4是什么?IPv4和IPv6有什么区别?
  15. 计算机培训excel的制作,绵阳电脑excel表格制作教程
  16. foobar2000在线标签服务器,在Foobar2000播放器中从音乐名获取标签的技巧
  17. 10行代码玩转弹性调度的小把戏
  18. 配置测试,你了解吗?
  19. GFP-GAN论文阅读笔记
  20. PCB布线技巧(全)

热门文章

  1. JAVA读取TXT文档乱码问题
  2. 解决jmeter进行分布式测试,远程机器来运行脚本,在察看结果树中的响应数据项为空白?
  3. Git Flow 工作模型与使用
  4. mysql varchar 自增_Mysql varchar型自增方法
  5. R ggplot2 | 用geom_sf()绘制地图
  6. 058基于Springboot医院管理系统【附源码】
  7. 纳多德视点 | 一文读懂PON无源光网络
  8. 在MySQL中 NULL的含义是_null有哪些常见的意思?(如何正确理解 SQL 中的 NULL)
  9. python爬虫爬取豆瓣读书Top250
  10. oracle 慕课课程_ORACLE数据库技术,中国大学MOOC(慕课)答案公众号搜题