Ubuntu16.04 + caffe-ssd + [CPU_ONLY] + KITTI 训练总结

本次训练主要参考:http://blog.csdn.net/jesse_mx/article/details/65634482

感谢 Jesse_Mx ,帮助了我很多。

 

坑一【openCV未安装成功】:

  openCV未安装成功会导致各种莫名的问题,比如:“No module named cv2”问题。

  然而,正确解决openCV安装问题也不是一路畅通。下面是经过多次失败个人总结的openCV安装方法:

  主要参考:

    在Ubuntu中安装并测试OpenCV http://blog.csdn.net/pengz0807/article/details/49915573

  使用的opencv版本是2.4.10

    其中,CMake 命令改为:

  cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DWITH_EIGEN=OFF ..

    

sudo sh -c 'echo"/usr/local/lib">/etc/ld.so.conf.d/opencv.conf

    要改为

sudo sh -c 'echo "/usr/local/lib">/etc/ld.so.conf.d/opencv.conf

  

    解决“No module named cv2”问题:

sudo pip install opencv-python

 

   ps:安装2.x版本的不需要下载 ippicv_linux_20151201.tgz 这个东西,3.x版本的需要

 

 

 

坑二【编译caffe】:

  caffe的编译需要很多依赖库,所以安装过程中出现各种各样的奇葩问题是很正常的。下面是caffe安装:

  主要参考网址:参考网址:http://blog.csdn.net/muzilinxi90/article/details/53673184

  注意:git clone https://github.com/BVLC/caffe.git  这个会很慢

  其中:

for req in $(cat requirements.txt); do pip install $req; done 

  替换为:

for req in $(cat requirements.txt); do sudo -H pip install $req --upgrade; done

  需要多执行几次,以确保完全安装成功,没有任何问题!

 

  【解决:ubuntu 没有/usr/include/hdf5/serial/】

  Step 1

在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/includeINCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

  Step 2

在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

  

  【解决:没有get_image_size工具,提示找不到get_image_size】

   那是因为使用的是原版的caffe,需要切换至caffe-ssd分支

  方法一:

git clone https://github.com/weiliu89/caffe.git
cd caffe/
git checkout ssd # 切换至分支ssd

  方法二:

直接下载github的zip包:https://github.com/weiliu89/caffe/tree/ssd

 

 

坑三【CPU_ONLY】:

  使用CPU_ONLY模式编译caffe会遇到更多的问题,所以强烈建议使用GPU模式

  如果出现训练终端,并报错类似以下错误:

sgd_solver.cpp:106] Iteration 13100,lr = 0.001
math_functions.cpp:250] Check failed: a <= b <0 vs -1.19209e-007>
*** Check failure stack trace ***.

  那么可以找到对应的cpp文件,在对应的位置注释掉类似下面的代码。

// CHECK_LE(a, b);

  然后重新编译pycaffe和make all,并重新开始训练。

 

  【解决:训练中断,提示内存不足】

   即使改过batch_size的值,在低配置的机器还是有可能出现以下错误:

Check failed: *ptr host allocation of size 184320000 failed
*** Check failure stack trace: ***@ 0xb72472b5  google::LogMessage::Fail()@ 0xb724957f  google::LogMessage::SendToLog()@ 0xb7246dee  google::LogMessage::Flush()@ 0xb724a06d  google::LogMessageFatal::~LogMessageFatal()@ 0xb76190b9  caffe::SyncedMemory::mutable_cpu_data()@ 0xb73e8260  caffe::Blob<>::mutable_cpu_data()@ 0xb7505c51  caffe::PoolingLayer<>::Forward_cpu()@ 0xb7413e15  caffe::Net<>::ForwardFromTo()@ 0xb7414062  caffe::Net<>::Forward()@ 0xb7637d51  caffe::Solver<>::Step()@ 0xb76388a9  caffe::Solver<>::Solve()@  0x8053221  train()@  0x804eff8  main@ 0xb69e2637  __libc_start_main@  0x804f8cb  (unknown)

   

  此时,就需要换配置了。。。。。。。没其他办法。。。。。。

转载于:https://www.cnblogs.com/mhiauge/p/7069102.html

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

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

相关文章

PHP面向对象常见的关键字和魔术方法

在PHP5的面向对象程序设计中提供了一些常见的关键字&#xff0c;用来修饰类、成员属性或成员方法&#xff0c;使他们具有特定的功能&#xff0c;例如final、static、const等关键字。还有一些比较实用的魔术方法&#xff0c;用来提高类或对象的应用能力&#xff0c;例如__call()…

python中字典长度可变吗_Python:如何给字典分配一个长度可变的列表值?

我试图在100个2D numpy数组中定位质心&#xff0c;如下所示&#xff1a;array([[ 0.216, 0.24 , 0.244, ..., 0.679, 0.684, 0.707],[ 0.23 , 0.229, 0.238, ..., 0.675, 0.676, 0.695],[ 0.221, 0.238, 0.24 , ..., 0.669, 0.677, 0.684],...,[ 0.937, 0.925, 0.923, ..., 0.7…

如何在论文中自动生成标准的参考文献格式

首先下载EndNote软件&#xff0c;word中会自动显示EndNote选项 选择EndNote 选择导出会下载一个txt文件 打开EndNote中向下的箭头导入&#xff08;从文件导入文献到库中&#xff09;找到刚才下载的txt文件 点击选择按键找到txt文件 选择打开即可 选择导入 选择导入的内容…

PrincetonAlgorithm I - Assignment2 Deques and Randomized Queues

Programming Assignment2 - Deque and Randomized Queues Review Assignment Specification 课程笔记 Subtext: Modular Programming Stacks and Queues are fundamental data types Value: collection of objectsBasic Operation: insert, remove, iterate.Difference: which …

【Android Studio】查看源码时提示“throw new RuntimeException(Stub!)”

如题…… 详细问题及解决方法&#xff1a;http://blog.csdn.net/u010917495/article/details/51234179 转载于:https://www.cnblogs.com/jaxer/p/7071431.html

TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—基础知识篇...

最近遇到一个线上报警&#xff1a;服务器出现大量TIME_WAIT导致其无法与下游模块建立新HTTP连接&#xff0c;在解决过程中&#xff0c;通过查阅经典教材和技术文章&#xff0c;加深了对TCP网络问题的理解。作为笔记&#xff0c;记录于此。 备注&#xff1a;本文主要介绍…

如何在Jupyter Notebook中使用Python虚拟环境

1、创建虚拟环境&#xff1a; condacreate-n 环境名 python版本号 例如创建一个叫做dl的虚拟环境,python版本为3.7&#xff1a; conda create -n dl python3.7 2、激活虚拟环境&#xff1a; conda activate 环境名 3、在虚拟环境中安装ipykernel (切记这一步是在对应的虚…

python分离文件名和路径_python 分离文件名和路径以及分离文件名和后缀的方法...

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云文件存储NAS是一个可共享访问&#xf…

JS基础入门篇( 一 )

1.JS存放在代码中的位置 1.JS写在行间 <div style"background-color: red;" onclick"alert(1)" >hello world</div> 优点&#xff1a;直接&#xff0c;简单 缺点&#xff1a;不方便复用和维护,不符合结构行为分离规范2.JS写在script ( 一般写在…

开源许可证,欢迎来到云时代

出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013)作者 | 唐建法前言开源许可证从最早的 GPL 开始&#xff0c; 逐渐演进到 GPLv2 和 v3&#xff0c;中间还有 Apache、MPL、AGPL、LGPL 等&#xff0c;但是近几年来有一批新的许可证的出现&#xff0c;引起了社区的一些…

15_新闻客户端_展示文字内容完成

1232131转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7074670.html

python socket传输图片_python使用socket传输图片视频等文件的实现方式

python使用socket传输图片视频等文件的实现方式来源&#xff1a;中文源码网 浏览&#xff1a; 次 日期&#xff1a;2019年11月5日【下载文档: python使用socket传输图片视频等文件的实现方式.txt 】(友情提示:右键点上行txt文档名->目标另存为)python 使用socket传输…

selenium - Select类 - 下拉框

WebDriver提供了Select类来处理下拉框。 如百度搜索设置的下拉框&#xff0c;如下图&#xff1a; from selenium import webdriver from selenium.webdriver.support.select import Select from time import sleepdriver webdriver.Chrome() driver.implicitly_wait(10) drive…

ubuntu安装samba

1 首先当然是要安装samba了&#xff1a;sudo apt-get install sambasudo apt-get install smbfs 2 下面我们来共享群组可读写文件夹&#xff0c;假设你要共享的文件夹为&#xff1a; /home/ray/sharemkdir /home/ray/sharechmod 777 /home/ray/share 备份并编辑smb.conf允许网络…

.NET 7 预览版 7

点击上方蓝字关注我们&#xff08;本文阅读时间&#xff1a;12分钟)今天我们发布了 .NET 7 预览版 7。这是 .NET 7 的最后一个预览版&#xff0c;下一个版本将是我们的第一个候选版本 &#xff08;RC&#xff09;。.NET Conf 2022 的日期已经公布&#xff01;请于 2022 年 11 月…

QWaiteCondition思考3

QWaitConditioin::wait() 接收一个mutex作为参数&#xff0c;这个mutex应该被调用线程初始化为锁定状态。在线程进入休眠状态&#xff08;waite&#xff09;之前&#xff0c;mutex会被解锁。当线程被唤醒&#xff08;WakeOne/wakeAll)时&#xff0c;mutex会处于锁定状态。而且&…

python实现定时任务的方式_Python实现定时执行任务的三种方式简单示例

本文实例讲述了Python实现定时执行任务的三种方式。分享给大家供大家参考&#xff0c;具体如下&#xff1a;1.定时任务代码#!/user/bin/env python# Time :2018/6/7 16:31# Author :PGIDYSQ[email protected] :PerformTaskTimer.py#定时执行任务命令import time,os,schedschedu…

js 获取data-属性值

// html code <span class"1pc_price" data-price"<?php echo Country::change($29.95,$money_type) . "<br/>Download Instantly"; ?>"></span>// js codevar price_1pc_hb document.getElementsByClassName(1pc_p…

android--------volley之网络请求和图片加载

为什么80%的码农都做不了架构师&#xff1f;>>> Volley是 Google 推出的 Android 异步网络请求框架和图片加载框架。 Volley的特性 封装了的异步的请求API。Volley 中大多是基于接口的设计&#xff0c;可配置性强。一个优雅和稳健的请求队列&#xff0c;一定程度符…

经典算法学习——冒泡排序

冒泡排序是我们学习的第一种排序算法。应该也算是最简单、最经常使用的排序算法了。无论怎么说。学会它是必定的。今天我们就用C语言来实现该算法。演示样例代码已经上传至&#xff1a;https://github.com/chenyufeng1991/BubbleSort算法描写叙述例如以下&#xff1a;&#xff…