linux 下搭建yolov3错误,Ubuntu20.04+cuda11.1+yolo3 目标检测 深度学习系统 真正从0搭建 包含各类可能遇到的错误...

本篇文章包含内容较多,请参照目录浏览,在每一部分结束或,有该部分可能遇到的问题

0、开始本教程前请先备份电脑中的重要文件!!!!

一、Ubuntu20.04 搭建

更详细的内容请参照该博客:https://www.cnblogs.com/masbay/p/10745170.htmlphp

个人电脑为UEFI新式bios+双硬盘(SSD固态硬盘+机械硬盘)模式,其余状况请参照上述博客html

1.1 为Ubuntu准备空间

1.1.1 在 WIN10系统下建立空白磁盘分区

1.1.1.1 回到桌面,鼠标右键点击此电脑,选择管理,结果以下:

0242c5e97a110719535825cede25f911.png

1.1.1.2 进入而后选择磁盘管理,结果以下:

c3860852aab6f1bfbe6ccbdceac23e2e.png

1.1.1.3 选择主分区,通常是最大的分区,右键,点击“压缩”,压缩出500M便可

3f5574d258b9861f400278c9ad3464f6.png

压缩完获得大小500M的可用空间,记住你设置的大小,这里是500M

5ce79f157b9cd3b7c64056a806579786.png

1.1.2 准备一块Ubuntu系统的主空间

上面的500M 至关于C盘,咱们给500M便可,接下来咱们要为系统准备主空间,将一块硬盘分区直接看成空间,在安装时格式化,也可使用 DiskGenius 从新划分分区。Wlinux

下载地址:https://www.diskgenius.cn/download.phpios

1.二、制做Ubuntu的U盘安装文件

1.2.1 下载安装并打开软碟通,插上 U 盘,而且最好备份你的 U 盘,由于以后须要格式化

下载地址 https://cn.ultraiso.net/xiazai.htmlgit

1.2. 2 进入软碟通,进行以下操做 选择文件,而且打开你下载的 ubuntu 所在的目录,选择 unbuntu 镜像

928f593fc25f0cbaab68bfccd79f4343.png

2de80c07b26d9b20e0b7ac89e5332748.png

1.2.3 在软碟通界面菜单栏选择启动,选择写入硬盘映像,如图所示:

6812626043adc55b5b5eccba408faab6.png

49ce98a16924f05783425154d3e0fac7.png

1.2.4 检查如下内容:

看你的硬盘驱动器是否对应的是你的 U 盘(必须是) ,通常默认是

看映像文件是否对应你的 ubuntu 镜像

若是上述均没有错误,选择格式化,以后就会格式化你的 U 盘

在 U 盘格式化完毕以后,选择写入,以后就是慢慢等待了,等待写入完毕

1.3 U盘安装系统

1.3.1 确认本身电脑主板bios怎么进入,个人是联想笔记本,开机时按F12便可,其余笔记本可参考下图(若是连bios都不会进,那本篇教程可能不适合你,先学学基础知识吧)

32a1c4492a76e3da4a419556f39ace6f.png

1.3.2 进入bios这里要干两件事情,都很是重要!

1.3.2.1 关闭在boot manager里关secure boot!(有些secure boot在另外的位置,本身找找)

若是不关可能致使显卡驱动安装出现问题github

1.3.2.2 设置计算机启动顺序,选择usb启动,而后重启

5819b07ddcf9d43f5bce6592a0e985b8.png

1.3.3 进入Ubuntu安装系统,选择中文,接下来都是一些常见的设置,根据本身状况设置,直到碰见"安装类型"选项

能够选择不联网,节约安装时间,在安装中途联网也是能够跳过的

ee13b25f980ad58f4aa1a4ac287d1a69.pngweb

1.3.3 在安装类型这里选择"其余类型"!!很是重要!!可能界面有所区别,但内容不会差不少

fd601041a6322ee1389716dad198bd6e.png

1.3.4 进行手动分区,还记得咱们整理出来的安装系统的500M吗?选择它,并在挂载点中选择/boot 若是遇到没法选择的状况,在左下角有+和-,能够从新划分

9fcd53012df55b4e7d305e96e9e86963.png

d4dbbeba59d62ed7245a8a08d19ec85a.png

1.3.5 在 咱们预留的主分区中,选择挂载点 / 若是遇到没法选择的状况,在左下角有+和-,能够从新划分

1.3.6 接下来就选择开始安装了,按你须要设置,也能够直接继续,不影响,最后是设置系统用户,本身设置输入就能够了

d815468f2cb8ec67df3115e826aea6b1.png

1.3.7 接下来等待安装完成便可,安装完成应当如图

c7efc02667e9a9be58211aff7e665f25.png

1.3.8 重启电脑,开机时会进入grub,windows boot manager 为原来的windows系统,选择相应的系统便可

f272bbde156913b654e5da793d12f2f7.png

1.4 可能遇到的问题

1.4.1 DiskGenius从新划分分区时遇到"$Bitmap 有标记已使用的未用簇"

08a0ed7b9dd959a55046c3a8044f4263.png

解决办法 使用管理员运行cmd,在命令行中输入“chkdsk /f /x c:”,最后的c:替换为须要检查的盘符,

如遇到"已被占用,不能卸载",则会提示在开机是进行检查,肯定并重启便可ubuntu

1.4.2 windows boot manager 没法进入系统,进入后来到哦系统恢复界面,且点击"继续启动windows"循环这一过程.

这里的状况比较复杂,但极可能是windows的引导程序出现问题.

能够尝试如下方法:vim

制做windows的启动盘.这里能够试试老毛桃,傻瓜式安装,并且后面的引导修复工具也能够用到.下载完整版https://www.laomaotao.net/

与1.3.1 方法相同,进入win pe

可使用老毛桃的引导区一键修复

2.安装NVIDIA 驱动

这里采用的是分开安装驱动和cuda的方式,首先肯定本身显卡的型号和支持的cuda版本!!

能够参考 https://jingyan.baidu.com/article/6fb756ec4fabc4241858fbf7.html

没有NVIDIA控制面板就去在windows下安装驱动windows

2.1 从官网下载驱动.run 文件

https://www.nvidia.com/Download/index.aspx?lang=cn

2.2 打开终端输入如下命令删除旧驱动

sudo apt-get purge nvidia*

2.3 禁用nouveau

2.3.1 首先利用命令行打开blacklist.conf,在文件末端加入内容

sudo gedit /etc/modprobe.d/blacklist.conf

2.3.2 在文件末端加入如下内容

blacklist nouveau

options nouveau modeset=0

2.3.3 而后更新

sudo update-initramfs -u

2.3.4 最后重启

终端下输入命令 lsmod | grep nouveau 查看是否被禁用,没有任何输出说明禁用成功

2.4 安装相关依赖

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install --no-install-recommends libboost-all-dev

sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.5 禁用图形界面

使用

crtl+alt+f1~f6 打开tty界面,输入用户名密码登陆

使用

sudo service lightdm stop

禁用图形界面。

2.6 赋予.run文件执行权

sudo chmod 775 ****.run

2.7 运行安装文件,基本上一路OK就好,注意不要安装opengl相关

sudo sh ./NVIDIA-Linux-***.run --no-opengl-files

2.8 挂在驱动

modprobe nvidia

2.9 安装完成,验证

sudo nvidia-smi

出现如下样子说明安装成功

d00f3b589f485b14d3b3d4ad0af3047a.png

2.10 可能遇到的问题

2.10.1 提示注册secure boot相关

退出安装,进入bios,关闭secure boot,具体能够参见1.3.2.1

3 安装cuda11.1

3.1 首先确认本身显卡支持的cuda版本并下载

cuda下载地址: https://developer.nvidia.com/zh-cn/cuda-downloads

3.2 运行.run文件

sudo sh cuda_9.0.176_384.81_linux.run

3.3 有些会让你输入accept 有些是选择yes,基本一路统一就好

3.4设置环境变量

3.4.1打开.bashrc文件

vim .bashrc

3.4.2 文末添加以下

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

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

export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0

3.4.3退出vim刷新环境变量

source ~/.bashrc

3.5 验证安装

输入

nvcc --version

若是出现下图说明安装成功了

c0bc1f2152bb7bbeff077db16471b589.png

4 安装cudnn

cudnn的安装很是简单

4.1 下载安装文件

按需求下载cudnn的安装文件:https://developer.nvidia.com/rdp/cudnn-archive

4.2 解压缩,能够看到名为cuda 的文件夹,在当前目录打开终端,执行以下命令

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/

sudo chmod a+r /usr/local/cuda/include/cudnn.h

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

4.3 验证安装,在终端输入

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

如看到下图说明安装成功

460af3275b81acf4bbc6984f676dcf56.png

5安装opencv

5.1 安装cmake

sudo apt-get install cmake

5.2 安装依赖环境

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

sudo apt-get install libgtk2.0-dev

sudo apt-get install pkg-config

5.3 下载本身须要的opencv版本

我是Ubuntu20.04+NVIDIA drive 460.39+cuda11.1,在安装opencv-2.4.11时遇到了严重的问题!!没法解决。经过从新安装opencv-3.4.13解决了。无特殊版本需求的话能够先考虑opencv-3.4.13。

下载地址:https://opencv.org/releases/

点击Sources进行下载本身须要的版本

bf6cb175c1fb2d737db5324a739530ad.png

5.4 解压文件并进入文件夹

5.5 进入文件夹后新建名为build的文件夹并进入

mkdir build

cd build

5.6 cmake(这一步可能会遇到不少问题,见这一部分后面的常见问题)

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local..

5.7 进行编译,须要的时间会比较长,可使用多线程

sudo make -j8

5.8 进行安装

sudo make install

5.9 配置环境

gedit打开/etc/ld.so.conf

sudo gedit /etc/ld.so.conf

gedit打开/etc/ld.so.conf执行此命令后打开的多是一个空白的文件,不用管,只须要在文件末尾添加

/usr/local/lib

gedit打开/etc/ld.so.conf

sudo ldconfig

配置bash

sudo gedit /etc/bash.bashrc

在最末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

保存,执行以下命令使得配置生效

source /etc/bash.bashrc

更新

sudo updatedb

5.10验证安装

cd到opencv-3.4.1/samples/cpp/example_cmake目录下,顺序执行如下命令

cmake .

make

./opencv_example

便可看到打开了摄像头,在左上角有一个hello opencv ,即表示配置成功。

fcd5460175b5ec7a654f4563f530c09d.png

5.11 可能遇到的问题

在安装opencv-2.4.11遇到了如下问题,解决后依旧不能正确安装,版本更换至opencv-3.4.13后再也不有任何问题

5.11.1 sys/videoio.h not found

到在usr/include中执行下面命令

sudo mkdir sys

在sys文件夹中添加网上找的videoio.h,或者直接新建一个videoio.h文件,内容能够为空,便可解决

5.11.2 linux/videodev.h not found

sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

5.11.3 ffmpeg/avformat.h not found

sudo ln -s /usr/local/include/libavformat ffmpeg

6 安装darknet

6.1 下载darknet

git clone https://github.com/pjreddie/darknet 下载代码

6.2 下载yolo3配置文件

wget https://pjreddie.com/media/files/yolov3.weights

6.3 进入到下载下来的darknet文件夹下,打开Makefile,对以下几个地方进行修改

这里的ARCH= -gencode arch=compute_61,code=[sm_61,compute_61]根据本身的GPU型号的计算能力进行设置,能够经过下面连接查找GPU的计算能力。GTX1080Ti的计算能力是6.1,因此设置为61,其余型号的对照修改吧。

https://developer.nvidia.com/cuda-gpus

9fe919b8da027081d3d2cdb4785502af.png

6.5 编译

make -j8

6.6 检验,在darknet目录下打开终端,输入

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

出现下图说明成功

f6b270d7bebda33d4425596094d711ec.png

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

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

相关文章

怎么配置SQLServer2005以允许远程连接

默认情况下,SQLServerExpressEdition 2005和SQL Server 2005开发版不允许远程连接。  要允许远程连接SQL Server 2005 ,需要完成以下步骤:  在SQLServer 实例上启用远程连接。  打开服务器 SQLBrowser 服务。  配置防火墙以允许SQLBrowser 服务和SQLServer服…

Kamailio 简介

Kamailio项目诞生于 2005年7月, 它是从德国FhG FOKUS研究所主导的SIP Express Router(SER)项目组分裂出来的。新项目建立的目标是创建一个开放的开发环境,以建立一个强大的可扩展的开源SIP服务器。最初,新项目命名为OpenSer,后来因…

SystemVerilog例子---traffic light

SystemVerilog例子---traffic light module traffic_light(output logic green_light,yellow_light,red_light,input sensor,input [15:0] green_downcnt,input [15:0] yellow_downcnt,input clock,input resetN); parameter R_BIT 0,G_BIT 1,Y_BIT 2;enum logic [2:0] {RE…

蓝桥杯c语言a组省赛试题及答案,2016-蓝桥杯-省赛-C语言大学A组全部真题.doc

第七届蓝桥杯大赛个人赛省赛真题(软件类)C/C 大学A组考生须知:考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。考试时间为4小时。时间截止后,提交答案无效。在考试强制结束前,选手可以主动结束考…

Digest authentication

“摘要”式认证( Digestauthentication)是一个简单的认证机制,最初是为HTTP协议开发的,因而也常叫做HTTP摘要,在RFC2671中描述。其身份验证机制很简单,它采用杂凑式(hash)加密方法&a…

关于DateTime和String转换的容易犯得错误

在开发中,常常会有DataTime类型和String类型的互相转换的要求,比较常用的写法是 var date Convert.ToDateTime("2012/06/08 09:10:10"); 咋一看这个代码好像没有什么问题, 实际运行也没发现问题。但是客户的机器上却是有转换的异常…

软件工程-c语言--基于at89c51单片机c语言编写的计算器,基于AT89C1单片机C语言编写的计算器.doc...

基于AT89C1单片机C语言编写的计算器#include#define uint unsigned int#define uchar unsigned charsbit dulaP2^6;sbit welaP2^7;sbit key1P3^4;uchar code table[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};uchar num,temp,num1…

Asterisk Queue呼叫中心的实现

1.先在sip.conf中建立若干个sip账号 如&#xff1a; [2207] typefriend mailbox2207 dtmfmoderfc2833 callgroup hostdynamic username2207 secret2207 canreinviteyes contextinternal calleridsch<2207> pickupgroup accountcode natyes disallowall allowilbc allowal…

stub 和 skeleton 的讲解,自己实现一个stub和skeleton程序

RMI的本质就是实现在不同JVM之间的调用,它的实现方法就是在两个JVM中各开一个Stub和Skeleton&#xff0c;二者通过socket通信来实现参数和返回值的传递。 有关RMI的例子代码网上可以找到不少,但绝大部分都是通过extend the interface java.rmi.Remote实现&#xff0c;已经封装的…

linux getdents 例子,Linux内建命令和外部命令(整理)

Linux命令有内部命令(内建命令)和外部命令之分&#xff0c;内部命令和外部命令功能基本相同&#xff0c;但也有些细微差别。【内部命令 vs. 外部命令】(1)内部命令实际上是shell程序的一部分&#xff0c;其中包含的是一些比较简单的linux系统命令&#xff0c;这些命令由shell程…

asterisk版本选择

背景&#xff1a;linux环境CentOS搭建好以后&#xff0c;下一步就是安装Asterisk了&#xff0c;但是面临的第一个问题就是面对如此多的版本该如何选择&#xff0c;因此不得不先对Asterisk的版本做一些分析了 一般&#xff0c;软件根据发布的维护的时间长短界定了两种类型&#…

暑假开始了,大家给力啊

Rome was not built in a day. 没有什么能轻易弄就 齐心努力&#xff0c;定能成就转载于:https://www.cnblogs.com/ustcSL/archive/2012/06/15/2550208.html

自己移植Asterisk1.8到OpenWRT下

众所周知OpenWRT是目前最流行的嵌入式Linux之一。支持广泛的CPU包括&#xff1a;x86、MIPS、ARM、PPC等。OpenWRT的trunk中所带的那个asterisk问题很多&#xff0c;缺少很多包&#xff0c;作者似乎仅仅是为了自己使用而移植的&#xff0c;而目前网上除了不详细的官方资料外也无…

延边大学c语言题库,延边大学-SPOC官方网站

课程大纲一、课程教学目的与任务本课程是理工科类的一门非常重要的计算机基础性课程&#xff0c;是学生学习程序设计语言和方法以及数据结构等课程的先导课程。是使学生了解有关程序设计的基本概念及常用术语&#xff0c;学习C 语言的基础知识、基本理论、基本概念和基本方法&a…

VC程序在没装VC的机器中运行

VC程序在没装VC的机器中运行(发表时间: 2008-6-26 16:01:00) 【评论】 【打印】 【字体&#xff1a;大 中 小】 本文链接&#xff1a;http://blog.pfan.cn/miaowei/36283.html复制链接 分享到&#xff1a;0标签:vs.net2005 vs.net2003 没装VC 没有VC 由于工作需要&#xff…

Asterisk PBX 快速安装向导

Asterisk PBX 可以简单的安装到大多数 Linux发行版本上&#xff0c;如 Debian, RedHat等&#xff0c;也可以定制到专用Linux版本运行&#xff0c;如Astlinux就是一个定制系统的例子。Asterisk PBX还可以运行于 Windows的cygwin境下(功能受到较大限制)&#xff0c;我们还曾经试…

STM32单片机读电压电流C语言,STM32单片机怎么检测0-24电压和电流

32的采集范围是0-3.3v你需0-24v电压衰减电路&#xff1a;电压跟随器高精度用运放&#xff0c;中精度用T型网络衰减电路&#xff0c;要求低用电阻分压的。电压缩小到0-3.3v范围内采集&#xff0c;然后用32通过一定比例再计算出实际电压扩展资料&#xff1a;单片机应用范围电路板…

报表中的Excel操作之Aspose.Cells(Excel模板)

本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件。这个组件的强大之处&#xff0c;就不多说&#xff0c;对于我们的报表总是会有导出Excel的处理&#xff0c;如果你使用微软Excel的com组件&#xff0c;那么对于简单的操作还行&#xff0c;但是多余复杂的模板&#xff0…

Android usb 权限广播,[Android]USB开发

第一&#xff1a;请求权限和请求权限回调(通过广播回调)注册一个广播接收器用于接收USB权限被同意或拒绝后发出的广播//注册USB设备权限管理广播IntentFilter filter new IntentFilter(ACTION_USB_PERMISSION); //ACTION_USB_PERMISSION为自定义的字符串context.registerRecei…

在飞音G801上运行OpenWRT+Asterisk

上篇文章介绍了如何在华硕RT-N11建立小型的SIP Server&#xff0c;本篇文章介绍将Asterisk移植到更为强大的VOIP网关G801上。G801是北京飞音时代的无线VoIP网关产品&#xff0c;在韩国SKT等运营商中广泛采用。G801支持802.11n 2T2R的无线路由&#xff0c;1WAN 4LAN的以太网&am…