首页 > 其他分享 >[常用工具] Caffe ssd常见问题集合

[常用工具] Caffe ssd常见问题集合

时间:2022-12-19 22:56:10浏览次数:38  
标签:常见问题 ratio scale Caffe bbox aspect sampler 常用工具 CHECK

date: 2019-03-12 10:54:11 +0800                 
tags:
  - 常用工具
  - 深度学习

1 Check failed: a <= b <0 vs -1.19209e-007>

网上办法是注释掉 CHECK_LE(a, b),但是这样会出大问题。解决办法见2。

如果注释掉 CHECK_LE(a, b) 会出现Data layer prefetch queue empty

不注释CHECK_LE(a, b) 会出现错误 a可能大于b

2 training error: Data layer prefetch queue empty

这种问题出现通常是注释掉 CHECK_LE(a, b) 出现Data layer prefetch queue empty。导致程序出现死循环。

解决办法修改src/caffe/util/sampler.cpp,如下面修改代码所示//renew注释下,加入两个判断,使得bbox长宽不要越界。

void SampleBBox(const Sampler& sampler, NormalizedBBox* sampled_bbox) {
  // Get random scale.
  CHECK_GE(sampler.max_scale(), sampler.min_scale());
  CHECK_GT(sampler.min_scale(), 0.);
  CHECK_LE(sampler.max_scale(), 1.);
  float scale;
  caffe_rng_uniform(1, sampler.min_scale(), sampler.max_scale(), &scale);

  // Get random aspect ratio.
  CHECK_GE(sampler.max_aspect_ratio(), sampler.min_aspect_ratio());
  CHECK_GT(sampler.min_aspect_ratio(), 0.);
  CHECK_LT(sampler.max_aspect_ratio(), FLT_MAX);
  float aspect_ratio;
  caffe_rng_uniform(1, sampler.min_aspect_ratio(), sampler.max_aspect_ratio(),
      &aspect_ratio);

  aspect_ratio = std::max<float>(aspect_ratio, std::pow(scale, 2.));
  aspect_ratio = std::min<float>(aspect_ratio, 1 / std::pow(scale, 2.));

  // Figure out bbox dimension.
  float bbox_width = scale * sqrt(aspect_ratio);
  float bbox_height = scale / sqrt(aspect_ratio);

  //renew
  if(bbox_width>=1.0)
  {
    bbox_width=1.0;
  }
  if(bbox_height>=1.0)
  {
    bbox_height=1.0;
  }

  // Figure out top left coordinates.
  float w_off, h_off;
  caffe_rng_uniform(1, 0.f, 1 - bbox_width, &w_off);
  caffe_rng_uniform(1, 0.f, 1 - bbox_height, &h_off);

  sampled_bbox->set_xmin(w_off);
  sampled_bbox->set_ymin(h_off);
  sampled_bbox->set_xmax(w_off + bbox_width);
  sampled_bbox->set_ymax(h_off + bbox_height);
}

3 配置SSD-caffe测试时出现“Check failed: error == cudaSuccess (10 vs. 0) invalid
device ordinal”解决

运行 python examples/ssd/ssd_pascal.py 时报错

解决方法:将ssd_pascal.py文件中第332行gpus = “0,1,2,3”的GPU选择改为gpus =“0”,后面的1,2,3都删掉即可。
再次训练即可。当然,只有一块GPU且电脑运行内存有限,还需要将ssd_pascal.py文件中的337行batch_size= 32和338行accum_batch_size = 32都改小一倍,即更改批量大小,
不然会出现“Check failed: error ==cudaSuccess (2 vs. 0) invalid …”的错误。

4 配置SSD-caffe出现“ AttributeError: ‘module’ object has no attribute
‘LabelMap’”解决

这是由于caffe的Python环境变量未配置好,可按照下面方法解决:

vim ~/.bashrc  
加入 export PYTHONPATH=/SSD所在目录/caffe/python  
source ~/.bashrc

标签:常见问题,ratio,scale,Caffe,bbox,aspect,sampler,常用工具,CHECK
From: https://www.cnblogs.com/luohenyueji/p/16993305.html

相关文章

  • [常用工具] PyAutoGUI使用教程
    date:2021-12-2119:40:22+0800tags:-常用工具-PythonPyAutoGUI使用教程目录PyAutoGUI使用教程1基础知识2一般函数3故障保险4鼠标函数4.1鼠标移动4.2......
  • 【FAQ】申请Health Kit权限的常见问题及解答
    华为运动健康服务(HUAWEIHealthKit)提供原子化数据开放,用户数据被授权获取后,应用可通过接口访问运动健康数据,对相关数据进行增、删、改、查等操作。这篇文章汇总了申请开通......
  • 产品经理快速入门指南之常见问题篇
    产品经理作为近几年互联网最炙手可热的岗位,可谓是赚足了眼球。其实呢,产品经理是很难定义的一个角色,如果非要一句话定义,那么产品经理是为终端用户服务,负责产品整个生命周期的......
  • 深度学习常见问题汇总
    1.Expectedalltensorstobeonthesamedevice,butfoundatleasttwodevices,cuda:0andcpu!原因参与运算的两个或多个变量,有的在CPU上,有的在GPU上解决首先......
  • [常用工具] shell脚本快速入门笔记
    Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell脚本(shellscript),是一种为shell编写的脚本程序。业界所说的shell通常都是指shell脚本,但要知道,sh......
  • [常用工具] 深度学习Caffe处理工具
    对于机器学习、图像处理有时要对图像数据进行分割处理。用python写了一些常用小工具代码。1Caffe数据集txt文本制作很多时候要建立如下数据集txt文本,类似图片所示(图片网......
  • [常用工具] cvat安装与使用指北
    cvat是一个非常好用的标注工具,但是也是非常难以安装的标注工具,所以本文简单讲一讲如何安装与使用cvat。cvat最好在ubuntu18.04安装,windows平台安装难度很大,然后在其他平台......
  • [常用工具] PyAutoGUI使用教程
    PyAutoGUI使用教程目录PyAutoGUI使用教程1基础知识2一般函数3故障保险4鼠标函数4.1鼠标移动4.2鼠标拖动4.3鼠标单击4.4鼠标滚动4.5鼠标按下4.6缓动/渐变(Tween/......
  • [常用工具] Caffe ssd常见问题集合
    1Checkfailed:a<=b<0vs-1.19209e-007>网上办法是注释掉CHECK_LE(a,b),但是这样会出大问题。解决办法见2。如果注释掉CHECK_LE(a,b)会出现Datalayerprefetc......
  • 3《Redis DevOps》三:小功能大用处-常用工具
    ##概述1.慢查询分析,找到有问题的命令进行优化2.RedisShell3.Pipeline,提高客户端性能4.事务与Lua脚本,自定义原子命令5.Bitmaps,字符串的位操作,节省内存6.HyperLogLo......