这次用yolov2做检测时遇到个大坑,折腾了我好几天,特以此文记录之。

一、安装cuda+cudnn

它们的版本必须要匹配,否则训练后检测不出目标!

1、下载cuda8.0.61_375.26_linux.run和cudnn-8.0-linux-x64-v5.1.tgz

2、安装cuda

sh cuda8.0.61_375.26_linux.run

一直enter,直至accept。然后是安装一些东西直接y,或者让你输入地址,

按enter用默认的就可以了。

3、环境变量设置

sudo gedit ~/.bashrc

在其末尾添加:

     export CUDA_HOME=/usr/local/cuda-8.0

    export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

    export PATH=/usr/local/cuda-8.0/bin:$PATH

       
   保存,刷新:source ~/.bashrc

    4、动态链接设置

创建文件:sudo gedit /etc/ld.so.conf.d/cuda.conf

写入:/usr/local/cuda/lib64

保存:sudo ldconfig -v

装好后,可用nvcc --version查看cuda版本

5、安装cudnn

如果之前安装了cudnn,可删除之:

    cd usr/local/cuda/lib64
    sudo rm libcudnn*
解压:
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
cd ../lib64
sudo cp lib* /usr/local/cuda/lib64/
cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include/
更新软连接:
cd /usr/local/cuda/lib64/ sudo rm -rf libcudnn.so libcudnn.so.5 sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 sudo ln -s libcudnn.so.5 libcudnn.so 更新:sudo ldconfig

参考:http://blog.csdn.net/jhszh418762259/article/details/52958287?locationNum=8&fps=1

http://www.cnblogs.com/denny402/p/5067265.html

http://www.jianshu.com/p/3c06b2a6b9df

二、yolov2安装测试

yolov2官网:https://pjreddie.com/darknet/yolo/

官网上有些安装步骤说的不是很清楚,所以很容易遇到坑。

1、darknet安装:git clone https://github.com/pjreddie/darknet.git

不要忘了修改makefile和nvcc!

GPU,cudnn,opencv设为1

nvcc=/usr/local/cuda-8.0/bin/nvcc

然后用make指令编译

2、下载voc数据集

用作者给的指令下载没有成功,手动下载即可。

在scripts里面转换格式:python voc_label.py

生成train文件:cat 2007_* 2012_train.txt > train.txt

在cfg/voc.data中修改训练数据路径

3、下载预训练模型

作者提供了很多其训练好的模型

4、自己训练voc数据

./darknet detector train ./cfg/voc.data ./cfg/yolo-voc.cfg

5、测试下迭代效果,比如6000次

./darknet detector test cfg/voc.data cfg/yolo-voc.cfg backup/yolo-voc_6000.weights data/dog.jpg

参考:http://blog.csdn.net/samylee/article/details/53414108

http://blog.csdn.net/u014540717/article/details/53411948

这个论坛中,作者会亲自解答yolov2:https://groups.google.com/forum/#!forum/darknet

yolov2在CUDA8.0+cudnn8.0下安装、训练、检测经历的更多相关文章

  1. 简单实现Ubuntu16.04 + caffe2 + CUDA9.0 + cuDNN8.0

    在Ubuntu16.04 CUDA9.0 cuDNN8.0的环境下安装caffe2 本博客比较简单,cuda9.0 cudnn8.0部分请看上一篇博客,其中详细讲了: 如何安装驱动 安装cuda 安装 ...

  2. caffe+GPU︱AWS.G2+Ubuntu14.04+GPU+CUDA8.0+cudnn8.0

    国服亚马逊的GPU实例G2.2xlarge的python+caffe的安装过程,被虐- 一周才装出来- BVLC/caffe的在AWS安装的官方教程github: https://github.com ...

  3. Permission denied:multiarray.cp35-win_amd64.pyd(tensorflow0.12.0在windows下安装)

    今天在windows下安装tensorflow0.12.0. 碰到一个奇怪的问题.Permission denied:multiarray.cp35-win_amd64.pyd 就是复制文件,一直复制 ...

  4. dotnet core 2.0在ubuntu下安装失败

    在ubuntu下安装.net core2.0失败了,不知道是什么原因.按照微软官方的步骤.似乎走不通.偶然翻到debian的安装方法,发现debian系统居然是直接下载包安装的.没经过apt.尝试一把 ...

  5. openSmile-2.3.0在Linux下安装

    我这边官网下载的特别慢,提供一下云盘下载安装包: 链接:http://pan.baidu.com/s/1sl2YGbz 密码:p1vj windows下的我也下载了 链接:http://pan.bai ...

  6. 2018最新win10 安装tensorflow1.4(GPU/CPU)+cuda8.0+cudnn8.0-v6 + keras 安装CUDA失败 导入tensorflow失败报错问题解决

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9747019.html 基本开发环境搭建 1. Microsoft Windows 版本 关于W ...

  7. QWT6.0.1+win7下安装说明

    A) 简介 1.QWT是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或 ...

  8. OpenCV 1.0在VC6下安装与配置(附测试程序)

    步骤: 1 安装Visual C++ 6.0         2 安装OpenCV 1.0        3 配置Windows环境变量         4 配置Visual C++ 6.0     ...

  9. 手把手0基础Centos下安装与部署paddleOcr 教程

    !!!以下内容为作者原创,首发于个人博客园&掘金平台.未经原作者同意与许可,任何人.任何组织不得以任何形式转载.原创不易,如果对您的问题提供了些许帮助,希望得到您的点赞支持. 0.paddle ...

随机推荐

  1. Docker run centos 内部使用systemctl 启动服务的方法

    1. 执行docker 镜像 使用命令为 docker run --privileged=true -ti -e "container=docker" centos /usr/sb ...

  2. Delphi : 制作程序启动欢迎界面

    制作欢迎界面的代码,大家参考 登陆窗体命名為:loginform.找到工程文件(Project -> View Source),找到如下代碼部分:begin   Application.Init ...

  3. 如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form

    如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form本文地址 :CodeGo.net/5175478/ ----------------------- ...

  4. 学习Spring Boot:(十九)Shiro 中使用缓存

    前言 在 shiro 中每次去拦截请求进行权限认证的时候,都会去数据库查询该用户的所有权限信息, 这个时候就是有一个问题了,因为用户的权限信息在短时间内是不可变的,每次查询出来的数据其实都是重复数据, ...

  5. JAVA字符串格式化-String.format()的使用 【生成随机数补0操作】

    转: JAVA字符串格式化-String.format()的使用 常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的s ...

  6. linux c 编程 ------ 程序入口参数,即 main 参数

    #include <stdio.h> int main(int argc, char *argv[]) { printf(]); int i = argc; printf("th ...

  7. NodeJS API Process全局对象

    Process 全局对象,可以在代码中的任何位置访问此对象,使用process对象可以截获进程的异常.退出等事件,也可以获取进程的当前目录.环境变量.内存占用等信息,还可以执行进程退出.工作目录切换等 ...

  8. Java基础-SSM之mybatis一对一外键关联

    Java基础-SSM之mybatis一对一外键关联 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表)  1>.创建husbandsfk和wife ...

  9. Lua程序设计(四)面向对象类继承

    1.类继承 ①代码 Sharp = { _val = } --① 父类 function Sharp:new() local new_sharp = { } self.__index = self - ...

  10. spring框架学习(三)spring与junit整合测试

    package cn.mf.b_test; import javax.annotation.Resource; import org.junit.Test; import org.junit.runn ...