SSD配置

1、clone作者github下的caffe文件包

git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd(出现“分支”则说明copy-check成功...作者caffe目录下有三个分支fcn/master/ssd, 利用git checkout来切换分支,否则只有master目录下的文件,这一步特别重要,一定不能省略)

2.修改Makefile和Makefile.config 文件(和配置caffe过程中的修改一样,具体可参考caffe编译中的python问题)

3.编译,编译的时候有两种选择

1) 网上很多教程说需要cmake,其实不用cmake,直接make (亲测有效)

make all –j512
make runtest
make pycaffe

2) 当然如果make后失败,可以采用这种第二种方法(如果已经make过了,首先记得make clean)

mkdir build
cd build
cmake ..
make all –j512
make install
make runtest #这一步不是必须的
make pycaffe

tips:使用第二种方法时,这里由于博主使用的电脑没有安装cudnn,于是在make all 的时候出现了很多关于cudnn的错误,解决这个问题的方法是修改CMakeList.txt的下面这一句,将ON改成OFF。

caffe_option(USE_CUDNN"Build Caffe with cuDNN library support" OFF IFNOT CPU_ONLY)

训练

1.    下载预训练模型

http://cs.unc.edu/~wliu/projects/ParseNet/VGG_ILSVRC_16_layers_fc_reduced.caffemodel

放到caffe/models/VGGNet/路径下

2.    准备数据集

1)下载数据集caffe/data/路径下

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar

2)解压数据

tar -xvf  VOCtrainval_11-May-2012.tar
tar –xvf  VOCtrainval_06-Nov-2007.tar
tar -xvf  VOCtest_06-Nov-2007.tar

数据解压后会得到一个名为VOCdevkit的文件夹,里面存放了VOC2007和VOC2012两个数据集的数据。

3)接下来生成lmdb文件以及label文件。

./data/VOC0712/create_list.sh
./data/VOC0712/create_data.sh

tips:这里注意需要修改data/VOC0712/create_list.sh和 data/VOC0712/create_data.sh里面的路径,将root_dir改为自己路径

训练

执行

cd caffe
python examples/ssd/ssd_pascal.py

tips:一定要在caffe路径下执行,否则会出现找不到caffe的错误。

遇到的问题

1)    配置SSD-caffe出现“ AttributeError: 'module' object has no attribute 'LabelMap'”

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

echo "exportPYTHONPATH=/home/huster/xxp/ssd/caffe/python" >> ~/.profile
source ~/.profile
echo $PYTHONPATH #检查环境变量的值

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

这是由于GPU数量不匹配造成的,如果训练自己的数据,那么我们只需要将solver.prototxt文件中的device_id 项改为自己的GPU块数,一块就是0,两块就是1,以此类推。

但是SSD配置时的例子是将训练语句整合成一个python文件ssd_pascal.py,所以需要改此代码。相关配置训练方法请参看转载博文:http://blog.csdn.net/xunan003/article/details/78427446

解决方法:将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 ...”的错误。

终于能开始训练了。剩下的下次更新。

感谢以下博客:

【1】https://www.jianshu.com/p/4eaedaeafcb4

【2】https://blog.csdn.net/xunan003/article/details/78432943

SSD配置和训练以及遇到的坑相关推荐

  1. Caffe SSD Ubuntu16 04 训练自己的数据集

    总的来说,Caffe 是一个比较难上手的框架.这次尝试训练 Caffe 框架下 SSD 模型的训练是我第一次使用 Caffe 框架.下面就说一说我踩过的几个坑,希望能够帮助到大家. 1 编译 Caff ...

  2. Caffe SSD编译、训练及测试

    SSD采用VGG16作为基础模型,然后在VGG16的基础上新增了卷积层来获得更多的特征以用于检测.SSD的网络结构如上图所示(上面是SSD模型,下面是Yolo模型),可以明显看到SSD利用了多尺度的特 ...

  3. CornerNet的配置、训练与测试

    CornerNet的配置.训练与测试 文章目录 CornerNet的配置.训练与测试 一.前言 二.配置.训练.测试 三.遇到的问题 一.前言 论文地址:https://arxiv.org/abs/1 ...

  4. 为Jupyter notebook配置R kernel过程及踩坑记录

    为Jupyter notebook配置R kernel过程及踩坑记录 注意:本文为作者安装过程及折腾的过程,内容比较冗杂,如果读者想直接创建一个属于自己的子环境则参考: 如下文章: anaconda下 ...

  5. Vue2.0配置mint-ui踩过的那些坑

    Vue2.0配置mint-ui踩过的那些坑 最近开发项目的时候逐渐采用vue.js+mint-ui的技术栈,但是昨天开始配置开发环境的时候,遇到了各种报错,即使是按照两家的官方文档配置,也还是会报错, ...

  6. 目标检测之SSD数据处理、训练与预测流程记录

    写在前面:本文不详细介绍SSD,只记录一些大体流程,具体细节可见参考1,换用数据集训练SSD可见参考2 参考1:SSD代码细节讲解 参考2:SSD换数据集训练 给定图片如何得到对应的GT SSD网络若 ...

  7. yolov5环境配置及训练coco128数据集

    本人小白一个,最近在学习yolov5网络,于是跟着网上的教程配置环境训练等,出现了很多错误,可能会比较乱,先说声抱歉.现在总结一下,算是理清下自己的思路,希望对各位也有些帮助. 环境配置:推荐安装Cu ...

  8. Ubuntu下配置、训练YOLO的全过程——无人机检测小系统

    搞毕设做的在TX2上识别检测旋翼无人机,现在把环境配置和制作训练集的整个过程分享如下,也借鉴了网上很多教程网站一并附在本文最后. 本文主要阐述Ubuntu下配置.训练YOLO的全过程. 1 安装ubu ...

  9. YOLOV3在windwos下的配置和训练过程简述

    YOLOV3在windwos下的配置和训练过程简述 GPU下配置 测试 在自己的训练集上训练YoloV3步骤(Windows) GPU下配置 (所有配置的路径中不要包含中文) 1) 首先配置好VS20 ...

最新文章

  1. 数的补数 Number Complement
  2. springboot + 拦截器 + 注解 实现自定义权限验证
  3. shell之echo and printf
  4. 《系统集成项目管理工程师》必背100个知识点-44应急储备和管理储备
  5. python rsa_Python RSA 公钥加密结果不一致
  6. VNPY2.0火币期货交易接口配置使用
  7. php 封装模式,PHP设计模式(三):封装
  8. c#读取生成excel表格文件xls、xlsx格式文件
  9. 碎片化(Fragment)时代的思维与技术
  10. WifiConnectivityManager 管理扫描
  11. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java面向中小学生的植物科普网站6s4f9
  12. 万能乘法速算法大全_小学数学各年级知识点和重点、难点大全,复习必备提纲!...
  13. 机房网络服务器维修图片,机房机柜尾纤布线图片 机房布线维护整理
  14. 京东裁员10%的高管
  15. tensorflow——960M显卡深度学习_报错no kernel image is available for execution on the device详解
  16. 1050: 平方和与立方和
  17. centos8使用syncthing自启动的两种方式
  18. Error response from daemon: readlink /var/lib/docker/overlay2/l/OEK3ESNVLXTTUOL6PIEXF2S6VF: invalid
  19. Edge浏览器清除当前网站的cookies
  20. Hutool 自定义excel导出

热门文章

  1. 前端移动端测试 查看控制台
  2. 单精度浮点数和双精度浮点数_浮点数和双精度数之间的区别
  3. 在 Node.js 中操作 Redis
  4. 服务器装什么操作系统好?
  5. Android系统学习(一)------编译系统Android7.0
  6. python 线程退出方法
  7. java如何将网页表格导出为excel
  8. 创业需要宽广的心胸吗--leo看赢在中国第三季(6)
  9. 行列式的基本定义与性质(笔记)
  10. 【计算机网络】:1-基本知识