yolov2在CUDA8.0+cudnn8.0下安装、训练、检测经历
这次用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下安装、训练、检测经历的更多相关文章
- 简单实现Ubuntu16.04 + caffe2 + CUDA9.0 + cuDNN8.0
在Ubuntu16.04 CUDA9.0 cuDNN8.0的环境下安装caffe2 本博客比较简单,cuda9.0 cudnn8.0部分请看上一篇博客,其中详细讲了: 如何安装驱动 安装cuda 安装 ...
- caffe+GPU︱AWS.G2+Ubuntu14.04+GPU+CUDA8.0+cudnn8.0
国服亚马逊的GPU实例G2.2xlarge的python+caffe的安装过程,被虐- 一周才装出来- BVLC/caffe的在AWS安装的官方教程github: https://github.com ...
- Permission denied:multiarray.cp35-win_amd64.pyd(tensorflow0.12.0在windows下安装)
今天在windows下安装tensorflow0.12.0. 碰到一个奇怪的问题.Permission denied:multiarray.cp35-win_amd64.pyd 就是复制文件,一直复制 ...
- dotnet core 2.0在ubuntu下安装失败
在ubuntu下安装.net core2.0失败了,不知道是什么原因.按照微软官方的步骤.似乎走不通.偶然翻到debian的安装方法,发现debian系统居然是直接下载包安装的.没经过apt.尝试一把 ...
- openSmile-2.3.0在Linux下安装
我这边官网下载的特别慢,提供一下云盘下载安装包: 链接:http://pan.baidu.com/s/1sl2YGbz 密码:p1vj windows下的我也下载了 链接:http://pan.bai ...
- 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 ...
- QWT6.0.1+win7下安装说明
A) 简介 1.QWT是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或 ...
- OpenCV 1.0在VC6下安装与配置(附测试程序)
步骤: 1 安装Visual C++ 6.0 2 安装OpenCV 1.0 3 配置Windows环境变量 4 配置Visual C++ 6.0 ...
- 手把手0基础Centos下安装与部署paddleOcr 教程
!!!以下内容为作者原创,首发于个人博客园&掘金平台.未经原作者同意与许可,任何人.任何组织不得以任何形式转载.原创不易,如果对您的问题提供了些许帮助,希望得到您的点赞支持. 0.paddle ...
随机推荐
- Docker run centos 内部使用systemctl 启动服务的方法
1. 执行docker 镜像 使用命令为 docker run --privileged=true -ti -e "container=docker" centos /usr/sb ...
- Delphi : 制作程序启动欢迎界面
制作欢迎界面的代码,大家参考 登陆窗体命名為:loginform.找到工程文件(Project -> View Source),找到如下代碼部分:begin Application.Init ...
- 如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form
如何在主Form出现之前,弹出密码验证From,Cancel就退出程序,Ok后密码正确才出现主Form本文地址 :CodeGo.net/5175478/ ----------------------- ...
- 学习Spring Boot:(十九)Shiro 中使用缓存
前言 在 shiro 中每次去拦截请求进行权限认证的时候,都会去数据库查询该用户的所有权限信息, 这个时候就是有一个问题了,因为用户的权限信息在短时间内是不可变的,每次查询出来的数据其实都是重复数据, ...
- JAVA字符串格式化-String.format()的使用 【生成随机数补0操作】
转: JAVA字符串格式化-String.format()的使用 常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的s ...
- linux c 编程 ------ 程序入口参数,即 main 参数
#include <stdio.h> int main(int argc, char *argv[]) { printf(]); int i = argc; printf("th ...
- NodeJS API Process全局对象
Process 全局对象,可以在代码中的任何位置访问此对象,使用process对象可以截获进程的异常.退出等事件,也可以获取进程的当前目录.环境变量.内存占用等信息,还可以执行进程退出.工作目录切换等 ...
- Java基础-SSM之mybatis一对一外键关联
Java基础-SSM之mybatis一对一外键关联 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表) 1>.创建husbandsfk和wife ...
- Lua程序设计(四)面向对象类继承
1.类继承 ①代码 Sharp = { _val = } --① 父类 function Sharp:new() local new_sharp = { } self.__index = self - ...
- spring框架学习(三)spring与junit整合测试
package cn.mf.b_test; import javax.annotation.Resource; import org.junit.Test; import org.junit.runn ...