当我使用大神利用pytorch复现的SSD网络进行训练时,遇到如下问题:

1、loss突然变为NAN

问题分析及解决方案:由于我的显存只有4G,因此将默认的batch_size由32改为了2。在batch_size减小的情况下,应适当减小学习率,即可解决问题。比较合适的组合如下:

batch_size=32    lr=1e-3

batch_size=8    lr=1e-4

batch_size=2    lr=1e-5

2、Stop Iteration(自动跳出迭代)

#使用如下代码代替:images, targets = next(batch_iterator)
try:images, targets = next(batch_iterator)
except StopIteration:batch_iterator=iter(data_loader)images, targets = next(batch_iterator)

3、loss_c[pos] = 0,提示Pos与loss_c形状不匹配

#在loss_c[pos]=0前添加如下代码,改变loss_c形状
loss_c = loss_c.view(pos.size()[0],pos.size()[1])

4、在GPU下执行webcam demo

源码中live.py文件默认只能在cpu下执行,如果想要在gpu下执行,则需要修改如下几处代码:

    #1、新增代码:创建网络对象net后,将其转移到gpu上if args.cuda > 0:net.cuda()# 2、修改代码:将 cv2_demo(net.eval(), transform)改为如下代码with torch.no_grad():cv2_demo(net.eval(), transform)#3、新增代码:在函数predict里的x = Variable(x.unsqueeze(0))代码后新增如下代码,将输入转移到gpu上计算if args.cuda > 0:x = x.cuda()#4、ssd.py文件中detect函数的输入self.priors.type(type(x.data)) 改为如下代码self.priors.type_as(x)

参考:https://blog.csdn.net/dingkm666/article/details/88775428

Pytorch训练SSD网络时遇到的问题相关推荐

  1. Pytorch 训练与测试时爆显存(cuda out of memory)的终极解决方案,使用cpu(勿喷)

    Pytorch 训练与测试时爆显存(cuda out of memory)的终极解决方案,使用cpu(勿喷) 参见了很多方法,都没有用. 简单点,直接把gpu设成-1

  2. keras用cpu加速_在训练某些网络时,Keras(Tensorflow后端)在GPU上比在CPU上慢CPU

    我很难理解GPU和CPU速度与小尺寸网络(CPU有时更快)相似的原因,而GPU更快更大尺寸的网络.问题底部的代码在i7-6700k上以103.7s运行,但是当使用tensorflow-gpu时,代码运 ...

  3. python吃显卡还是内存不足_解决Pytorch 训练与测试时爆显存(out of memory)的问题

    Pytorch 训练时有时候会因为加载的东西过多而爆显存,有些时候这种情况还可以使用cuda的清理技术进行修整,当然如果模型实在太大,那也没办法. 使用torch.cuda.empty_cache() ...

  4. 在PyTorch训练一个epoch时,模型不能接着训练,Dataloader卡死

    笔者在训练模型的时候,突然偶遇这个问题,即训练一个epoch时,模型不能接着训练,只能通过Ctrl+C强制性暂停,见下图: Ctrl+C之后呈现的信息表明,这个bug是和多线程有关系. 经过笔者实验, ...

  5. Pytorch 训练与测试时爆显存(out of memory)的一个解决方案

    Pytorch 训练时有时候会因为加载的东西过多而爆显存,有些时候这种情况还可以使用cuda的清理技术进行修整,当然如果模型实在太大,那也没办法. 使用torch.cuda.empty_cache() ...

  6. 解决Pytorch 训练与测试时爆显存(out of memory)的问题

    Pytorch 训练时有时候会因为加载的东西过多而爆显存,有些时候这种情况还可以使用cuda的清理技术进行修整,当然如果模型实在太大,那也没办法. 使用torch.cuda.empty_cache() ...

  7. Pytorch训练PTB数据集时速度慢的问题

    项目场景: 利用Pytorch在PTB数据集上训练的词嵌入模型的实现. 问题描述: 在训练过程中,发现训练速度很慢,利用GPU-Z查看后,发现GPU利用率基本为0. 原因分析: 为了找到耗时大的程序段 ...

  8. pytorch训练WGAN网络

    使用8个高斯分布做对抗网络训练. wgan_gp.py,代码: import torch from torch import nn, optim, autograd import numpy as n ...

  9. 报错(已解决):训练SSD网络时候出现DuplicateFlagError: The flag 'loss_alpha' is defined twice. 问题求助

    https://blog.csdn.net/liuyan20062010/article/details/78905517#commentsedit 第一: 按照上述博客方法做训练博客中的方案3 方案 ...

  10. 目标检测算法SSD用于行人检测(二):训练和测试SSD网络

    将Caltech数据集转化为caffe的输入数据格式LMDB请参考上一篇文章:https://blog.csdn.net/sunshine_zkf/article/details/86173247 前 ...

最新文章

  1. ubuntu mysql 远程连接问题解决方法
  2. Delphi2010使用TImage打开jpeg图片错误的处理
  3. c语言程序设计案例教程(第2版)笔记(三)—变量、结构体
  4. SDWebImage实现原理(怎么实现图片缓存器)
  5. Leecode 496. 下一个更大元素 I——Leecode每日一题系列
  6. python操作redis实例_Java,php,Python连接并操作redis实例
  7. java redis geo_redis学习计划(九)redis GEO地理位置
  8. Usually, these regular meetings do not have
  9. 转会咯,从广州转北京咯!
  10. 前端内容占位技术分享
  11. java高并发模糊查询,高并发优化
  12. android 桌球游戏,安卓上目前最台球游戏《台球帝国》测评
  13. [原创]电路仿真设计multisim 14安装,破解,汉化教程
  14. windows10下超级好用的截屏自带快捷键
  15. 计算机组成原理第5版第六章答案,计算机组成原理第六章答案.docx
  16. Error: Cannot find module ‘webpack‘
  17. C#/VB.NET 读取条码类型及条码在图片中的坐标位置
  18. 未知usb设备(设备描述请求失败)_HomePod mini?电源线同样不可拆卸:但或能用USB-C移动电源供电...
  19. java 骑士飞行棋_C#实现骑士飞行棋
  20. 不成熟的男人的爱情观——知乎上另一个关于不成熟男人的见解

热门文章

  1. 使用Unicode字符集出现的错误总结
  2. rj45插座尺寸图_详细介绍RJ45模块(附图解)
  3. 用JavaScript替换重复字符
  4. Oracle数据库sql语句空字段筛选方法,sql语句值为空判断方法
  5. app怎么嵌套vue页面_用vue做app内嵌页遇到的坑
  6. 银行数据仓库体系实践(14)--数据应用之内部报表及数据分析
  7. java 检测usb_如何从android中检测和打印USB打印机
  8. Visio模具与模版
  9. Matlab求解线性规划
  10. apdu 移动sim_SIM卡基础技术规范, ISO-7816协议(APDU指令)