fasterrcnn tensorflow代码详解_pytorch目标检测代码的一些bug调试

这几天一直在做调包侠,是时候来总结总结了。记录一些我所遇到的不常见的问题。

faster rcnn:

参考代码:

jwyang/faster-rcnn.pytorch​github.com
0605e953430abac3bdd26f8fd981b8ba.png

pytorch代码调试,相较于tensorflow的版本要友好一些,不用创建软连接啥的,数据集直接复制voc2007就行(暂时没有尝试coco),不过要注意如果有一个类别是0(就是完全没有目标的图像)要把这个类别给去掉,不然在训练的时候rpn_bound_loss会变成nan,我猜测是因为找不到正样本(如果类别为0,正样本是0,背景也是0,可能机器就会把正样本和负样本搞混,找不到正样本,分子为0,损失就变成nan了)。

SSD:

参考代码:

https://github.com/amdegroot/ssd.pytorch​github.com

这个代码调试了很久,大部分问题可以百度解决。我遇到的难题是这个

IndexError: too many indices for array(其他的报错信息找不到了。。)

可以参考我的回答:

小墨:SSD IndexError: too many indices for array报错​zhuanlan.zhihu.com
guoruoqian/cascade-rcnn_Pytorch小墨:SSD IndexError: too many indices for array报错​zhuanlan.zhihu.com

另外一个难题是这个:

报错信息:RuntimeError: cuda runtime error(59):device-side assert triggred at XXXX

这个是我不懂SSD的原因,SSD中类别是没有backgound,但是config.py中类别数要修改成class+1,这个1就是背景。

cascade-rcnn

https://github.com/guoruoqian/cascade-rcnn_Pytorch​github.com

这个代码和前面的faster rcnn的代码是一脉相承的,改一下lib里面的make.sh里面的算力,我的是sm_61。报错如下

from scipy.misc import imread cannot import name "imread"

这个只需要吧scipy的版本降低到1.2.1就OK了,更低的版本1.1.0我也试过了,可以使用。

第二个报错是这个:

im_data=im_data.cuda()这里报错

runtimeError: cuda runtime error (38): no CUDA-capable device is detected at XXXX

这个是因为在输入命令的时候是这样输入的:

CUDA_VISIBLE_DEVICES=3 python3 trainval_net.py XXXXX等等一长串

CUDA_VISIBLE_DEVICES这个命令是选择GPU的型号,如果你只有一块GPU,就只能选择0。

这个报错的网上解答很多都是要求重新装驱动,装cuda。如果是头一次使用cuda,报错,可以重新装,不过对于我来说没必要,其他代码能运行,说明版本啥的没问题,能不折腾就不折腾。

能想到的bug就这么多,后续想到了或者遇到了会继续补充。有建议和问题请在评论区留言,我想起了就会去看看。

等待后续更新 2020年1月8日

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win8 mysql6_Win8系统 MySQL 6.0 安装图解

Win8系统 MySQL 6.0 安装图解(作者:wanghui2015/04/08)1、首先双击mysql-6.0.10-msi,会出现如下图所示界面。点击next;2、出现如下界面:这三个为选择安装类型,新手可以选择Typical或Complete就可以了。咱们为了看一下安…

python 对比文件内容差异_使用Python来比较文件夹并提取差异部分

在客户那边建库,需要把几百个G几十万个文件导入到Oracle里,好不容易导完了才发现中间缺了好几大块数据,约有四分之一吧,郁闷得很。 数据是客户从第三方买的,据客户分析是拷贝过来的时候有部分数据漏掉了,但…

mysql查询缓存到redis_php查询mysql并缓存到redis

首先安装redis,并在php环境中开启php_redis扩展。下面不多说了,直接上代码$redis new redis();$redis->connect(127.0.0.1, 6379);$blog $redis->get(redisrow);//如果$blog数组为空,则去数据库中查询,并加入到redis中if(…

python画锯齿波_用Python控制硬件35-自制二三十元成本的信号测量采集控制系统

如前篇所介绍,用Shell Lab测试台软件配合之前介绍的任意款实验板,都能方便地实现ADC电压测量,但遇到两个问题:示例代码虽然众多,但大都默认ShellLab类型的控制器,需要手动改为Mcush.Mcush类型才能运行&…

java连接hbase_HBase实战 | 05405.15.0Spark2使用HBaseSpark访问HBase

转载自微信公众号Hadoop实操温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。Fayson的github:https://github.com/fayson/cdhproject提示:代码块部分可以左右滑动查看噢1文章编写目的越…

python归并排序算法实现_python算法实现系列-归并排序

效率比较高的归并排序&#xff0c; 有两种方式。1.使用递归def merge(left, right):result []i,j 0, 0while i < len(left) and j < len(right):if left[i] < right[j]:result.append(left[i])i 1else:result.append(right[j])j 1result left[i:]result right[j…

python编程教程交互式联系_Python Koans交互式教程

Python Koans是一个学习Python编程语言的交互式教程&#xff0c;通过解决当中的问题来更深刻地理解Python。本系列文章为在此项目的学习中的问题解决方案及思考Lesson 2 String字符串是 Python 中最常用的数据类型。我们可以使用引号’或”来创建字符串。about_strings.py#!/us…

wxpython使用简介_wxpython简介

Python​ Python是一种成功的脚本语言&#xff0c;它最初是由Guido van Rossum开发的。它于1991年首次发布。Python的灵感来自于ABC和Haskell编程语言。Python是一种高级的、通用的、多平台的、解释型的语言。有人更喜欢称它为动态语言。它很容易学习。Python是一种极简主义语言…

计算机科学与python编程导论_计算机科学入门和使用Python编程

你将学到什么A Notion of computationThe Python programming languageSome simple algorithmsTesting and debuggingAn informal introduction to algorithmic complexityData structures课程概况This course is the first of a two-course sequence: Introduction to Compute…

电脑4次连续故障音_格力空调电子膨胀阀故障判定与“E6”处理方法

一、电子膨胀阀常见故障原因电器电子膨胀阀是一种利用电子控制器通过电缆向线圈发出脉冲控制信号&#xff0c;控制施加于膨胀阀上的电压或电流&#xff0c;从而控制阀针的动作实现阀口流通面积改变达到流量自动调节目的的节流器件&#xff0c;是空调器的重要部件之一&#xff0…

mysql+性能+计算列_MYSQL性能优化的最佳20+条经验

当你查询表的有些时候&#xff0c;你已经知道结果只会有一条结果&#xff0c;但因为你可能需要去fetch游标&#xff0c;或是你也许会去检查返回的记录数。在这种情况下&#xff0c;加上 LIMIT 1 可以增加性能。这样一样&#xff0c;MySQL数据库引擎会在找到一条数据后停止搜索&…

ClickHouse 入门与实战教程

目录 1. ClickHouse 简介 什么是 ClickHouse&#xff1f; ClickHouse 的优势和特点 适用场景 2. 安装 ClickHouse 3. ClickHouse 的基本概念 4. ClickHouse 的基本操作 创建数据库和表、插入和查询数据 使用 MergeTree 引擎处理时序数据 管理分区 创建带有分区的 Mer…

python脚本自动消除安卓版_python脚本中appium的自启动自关闭

前提&#xff1a;已安装appium命令行版本将appium的启动及其关闭直接写在脚本中&#xff0c;运行起来会方便很多创建startAppiumServer.bat 和 stopAppiumServer.bat文件&#xff0c;然后文件存放在运行的包下面注意点&#xff1a;调用startAppiumServer.bat 和stopAppiumServe…

sid图像数据_实战材料信息学:使用skimage处理扫描电子显微镜(SEM)图像数据

算开个头&#xff0c;不算特别实战扫描电子显微镜&#xff0c;材料开发不可缺少的分析仪器。原理就不详述了。材料的形貌&#xff0c;具体长什么样的都可以看得很清楚。材料表面的形貌很多情况下会和材料的物性产生直接关系&#xff0c;比如说可以从SEM看出粒子的直径分布&…

python生成器 图片分类_Python内置类型(6)——生成器

上节内容说到Python的for语句循环本质上就是通过调用Iterable可迭代对象的__iter()__方法获得一个Iterator迭代器对象,然后不断调用Iterator迭代器对象__next()__方法实现的。Iterator迭代器对象则是一个需要实现__iter__()和__next__()两个迭代器协议方法的对象。python中生成…

java 把方法当参数传递_java 中 如何将“一个类的方法 ”作为参数传到“另一个类的方法”中...

展开全部在java中这是没有办法做到的&#xff0c;因e5a48de588b662616964757a686964616f31333337396336为java不是函数式编程语言&#xff0c;不过可以通过传递一个接口来实现。下面解说java如何模拟&#xff1a;先定义一个接口:interface MethodInterface{//这个方法假如就是你…

轮询数据库 java_谁做过定时任务,轮询查询数据。

一、增加所依赖的JAR包1、增加Spring的Maven依赖org.springframeworkspring-webmvc3.0.5.RELEASE2、增加Quartz的Maven依赖org.quartz-schedulerquartz1.8.4二、增加定时业务逻辑类public class ExpireJobTask {/** Logger */private static final Logger logger LoggerFactor…

arcgis制作空间变化图怎么做_听说如果做数据分析不用GIS,会被开?

Q你有没有遇到这样的情况&#xff1f;身边的同事或同学经常说什么高程图、坡向图、坡度图、生态水文图、热力密度图、大数据算法&#xff0c;而自己却一无所知&#xff0c;心里感到特别的慌啊。文末附ArcGIS最新版及超强数据神器 很多人会说&#xff0c;“设计师是感性的&#…

仅完成部分的readprocessmemory或write_王者荣耀:三种李小龙获取方式!无需完成任务、28号即可兑换...

哈喽大家好&#xff01;我是你们的小菜鸡“荣耀急先锋”王者荣耀五周年庆限定皮肤李小龙活动已经开始啦&#xff01;大家有参加了吗&#xff1f;或者说对这个活动不太理解&#xff0c;针对这些小伙伴菜鸡今天就简单的跟大家讲讲李小龙皮肤活动的规则&#xff0c;让我们一起看看…

uuid java 重复_Java中使用UUID工具类生成唯一标志防止重复

import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import java.util.Random;import java.util.concurrent.ThreadLocalRandom;/*** 提供通用唯一识别码(universally unique identifier)(UUID)实现**/publ…