之前想学一下fasterRCNN,于是看了网上了一些博客,遇到了一些问题,这里做个总结。

参考链接:

https://blog.csdn.net/sinat_30071459/article/details/51332084

https://github.com/rbgirshick/py-faster-rcnn

1.上面两个网址都介绍的很全了,其他是个人问题解决办法。

2.fasterRCNN试跑时,是先用已经训练好的model去跑demo,demo跑通说明基本环境没问题了,demo用不上VOC数据库。然后用自己的数据替换VOC数据集去fine-tuning已经有的模型。一开始,可以把迭代次数全部设置为最小,例如全部取100。这样可以看环境或者程序是否有问题,没问题后再把迭代次数改大。节省时间。

3.Makefile.config这里,我只改了连个地方,开了python编译和增加了hdf5的库位置

(1)with_python=1取消注释,相当于启动

(2)下面为修改后的头文件和库路径:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

4.第一个博客中有一句:make -j8 && make pycaffe

其中&相当于&,在HTML中的格式,实际上是作者用html格式没换行导致的。只要两个步骤:make和make pycaffe

所以这是两句指令,make -j8最好改为make -j32,速度快,-j32表示是32位的;下一步make pycaffe就可以了。

make clean(这句是用来清理make产生的file的,如果没make失败,可以清理后再make)

5.由于我用的是服务器跑的程序,而且是个人账户,只好用远程登录,跑demo的过程中,发现显示不了图像,经常提示plt错误。tkinter.TclError: no display name and no $DISPLAY environment variable就是显示不了图像的意思。

解决办法:

(1)Windows可以用xshell加xmanage解决,但是我发现我的Windows7装了这两个也不行,但是Windows10装了直接就能用,win7的问题搜索了很多都没解决,最后只能用win10了。xshell+xmanage需要以下指令才能验证正常使用:

su 用户名(这句好像不用也可以)

export DISPLAY=192.168.1.108:0.0(IP改为自己的,最主要是这一句)

xclock(显示时钟图案,如果成功说明配置没问题)

nautilus(远程显示用户的图像操作界面的)

(2)linux比较简单:首先在服务器上使用xhost+允许远程登录(参考网上教程,下面步骤走不通再设置这个);接着用

ssh -X 用户名@192.168.1.100(主机地址),注意-X要大写,表示开启图形界面。如果成功登录,就直接可以用了。

用xclock 或nautilus或display 图片.jpg来测试,如果能显示,说明成功了。

6.远程操作服务器编程最好用ipython notebook,不过要设置映射(参考网上教程),例如局域网可以用http://192.168.1.100:9999登录,前面ip为主机地址,9999是我把主机的ipython notebook映射成9999端口了,接着用设置好的密码登录就可以了。

7.服务器和个人需要的很多库版本不同,很容易出现import类错误。如果没权限,这时可以用pip来给个人用户文件夹装库,

参考https://blog.csdn.net/liangyanghui/article/details/81016488

8.fasterRCNN运行过程中出现了这个错误,AttributeError: 'module' object has no attribute 'text_format',百度了一下都说是由于protobuf版本不同,但是根据很多教程装了protobuf很多版本才发现,只需要"在文件./lib/fast_rcnn/train.py增加一行import google.protobuf.text_format 即可解决问题",protobuf回退到版本2.5.0会使caffe编译出现一些问题。感谢https://blog.csdn.net/qq_33202928/article/details/72526710

9.top查看当前运行的进程,nvidia-smi查看当前英伟达显卡占用率

10.错误TypeError: 'numpy.float64' object cannot be interpreted as an index,查看很多博客都说是numpy版本问题,但是装了numpy11又会出现新的问题,最直接的方法是改变文件中numpy的用法,见以下博客:

https://www.cnblogs.com/han1ning1/p/7858357.html

https://blog.csdn.net/qq_21089969/article/details/69422624

上面博客说的第二个integer问题,实际有两个地方:一个是 /home/XXX/py-faster-rcnn/lib/rpn/proposal_target_layer.py,转到123行;另一个是/home/lXXX/py-faster-rcnn//lib/roi_data_layer/minibatch.py的173行,都需要强制转换为int类型。

11.错误:bbox_targets[ind, start:end] = bbox_target_data[ind, 1:]

ValueError: could not broadcast input array from shape (4) into shape (0)

这类错误是因为索引超限,我跑fasterRCNN出现这个问题是因为在类别标签(分多少类)和那些layer的类别数量设置不一致导致的,修改回来就好了。

FasterRCNN调试笔记相关推荐

  1. 调试笔记--jlink 变量转实时波形小技巧

    调试笔记–jlink 变量转实时波形小技巧 上篇讲了jlink RTT组件在RAM中开辟一段内存,将printf字符串存入然后通过jlink调试接口读取RAM,将printf字符串在jlink-RTT ...

  2. 调试笔记--keil 测量周期小技巧

    调试笔记–keil 测量周期小技巧 本文参考安富莱专题教程第7期 http://www.armbbs.cn/forum.php?mod=viewthread&tid=87176&ext ...

  3. 调试笔记--keil 断点调试小技巧

    调试笔记–keil 断点调试小技巧 给变量打断点 调试不熟悉的项目时,卧槽!怎么这么多全局变量?这玩意又在那修改了??这个时候会给变量打断点就能省好多事. 将要监视的全局变量添加到watch窗口 选中 ...

  4. gpio驱动广播Android,[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示. Recovery中升级完成后控 ...

  5. keil4怎么移植其他人的程序_【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608...

    之前发了LCD调试笔记,大家很感兴趣,所以这次再来一篇:六轴传感器ICM20608驱动移植笔记,大家还需要什么移植笔记?可以留言.我们尽量满足. 1.1 移植思路 先找到驱动:也许内核里已经有,也许需 ...

  6. RK3399 GT1X触摸屏驱动调试笔记

    硬件环境 1.Firefly AIO-3399(AI)开发版: 2.恒智的5寸电容触摸屏800X480,I2C驱动支持GT5688. 操作系统 Android 7.2 for rockship Ste ...

  7. Rockchip基于RK3566/RK3568 WiFi AP6256调试笔记

    1.开发平台 CPU:RK3566 编译环境:Ubuntu18.04 内核版本:kernel 4.19 2.目的 因为RK3566/RK3568支持SDIO3.0并且向下兼有SDIO2.0接口,由于核 ...

  8. 雅马哈四轴机器人调试笔记

    雅马哈四轴机器人调试笔记 1.0 先简单说下硬件,如下图对着插就行,雅马哈四轴主要硬件有控制器跟机械手,机械手到控制器主要有4跟电机接口电缆,每2个轴有一个编码器接口电缆,每根轴有一个配置的数据备份电 ...

  9. OMAP3530-mini调试笔记(2)

    PS:USB不能正常工作的根本原因参见调试笔记(3) 各个版本的x-loader和u-boot对kernel的支持情况: U-Boot 2011.12-00010-ga3eb89c (Jan 29 2 ...

  10. 雅马哈机器人左手右手系统_雅马哈四轴机器人调试笔记

    雅马哈四轴机器人调试笔记 1.0 先简单说下硬件,如下图对着插就行,雅马哈四轴主要硬件有控制器跟机械手,机械手到控制器主要有4跟电机接口电缆,每2个轴有一个编码器接口电缆,每根轴有一个配置的数据备份电 ...

最新文章

  1. MySQL基础篇:SELECT几种子句
  2. 十个改变了计算机世界的算法,你知道几个?
  3. Android开发之git提交代码到GitHub仓库教程
  4. 学法减分小程序可用可运营源码附带安装教程
  5. 直接在低版本IE6/7/8浏览器中使用HTML5的audio和video标签播放视频音频的办法
  6. 图片放大缩小旋转左移右移镜像倒影android
  7. 程序员毕业后,一年内能到的水平,二十年后依然这个水平
  8. css的checkbox样式,css自定义checkbox样式的方法总结
  9. python解释器的下载与安装
  10. Nero11序列号 有效序列号
  11. 【金融市场基础知识】——中国的金融体系(二)
  12. NCS初探--基于nRF5340的blinky
  13. C++ string乱码可能解决方案
  14. android开发利用传感器实现微信的摇一摇功能
  15. 【论文笔记】基于 ROS 的送餐机器人自主抓取实现
  16. 解决报错:did not contain a valid NDK and couldn‘t be used
  17. 英特尔固态硬盘测试软件,AS SSD测试:IOPS值高达11万_Intel 520_固态硬盘评测-中关村在线...
  18. OCA/OCP Oracle 数据库12c考试指南读书笔记:第3章: Installing Oracle Grid Infrastructure for a Stand-Alone Server
  19. Linux C语言高级学习第八天(gcc代码优化makefile)
  20. 区块链网络端口及证书

热门文章

  1. 微信小程序图片转换成文字_文字工作者必备 微信小程序图片转文字
  2. vue 引入qunee_(原创) 工作流程图的树形展示-使用qunee插件实现
  3. 3DMAX渲染很卡很慢?8个3dsMax中节省建模和渲染时间的技巧-瑞云渲染
  4. phpStudy + JspStudy 2014.10.02 下载
  5. linux ubuntu用哪个版本,Ubuntu到底哪个版本最好用?
  6. RSS阅读器Reeder简单使用攻略
  7. 社区列表根据关注人数排序(排行榜)的实现思路整理
  8. springBean生命周期
  9. 完美数Python解法
  10. 马哥Python培训怎么样——再次革命性升级