目录
由于最近博主在参加一个无人机的比赛,需要对障碍物进行识别。所以根据调查考究,决定使用YOLO算法对障碍物进行目标检测,yolo算法的系列非常之多,那么最新的就是前段时间AB大神团队(yolov4的作者)出的yolov7。那么作为零基础深度学习的我,在这半个月探索的过程中可谓是经历了风风雨雨百般挫折,好在最终修成正果。可以说使用yolo进行目标检测的门槛挺高的,如果像博主我这种一开始完全不懂的零基础的小白而言,要搜索将近几百篇博客才可能真正的能够跑通并且使用yolov7进行推理,训练。那么我对接下来要出的yolov7相关博客的主要内容进行一个前言总结:1. 对网上相关博客进行整理归纳总结,真正意义上的帮助零基础小白实现yolov7的推理和训练 2.深度学习环境搭建 3.用python和c++分别实现yolov7 4.常见bug的分析
可以说小白yolov7入门的第一个难题就是深度学习相关环境的搭建,很多人在尝试了几次环境搭建失败之后就选择放弃,也就不了了之了,那么博主毫不夸张的说经历了上百次的失败,最终才成功的。所以在入门yolov7的过程中首先最重要的就是有恒心,每个人的电脑都不一样,所以出现的问题也会不同,要多去尝试,不要轻易放弃。
安装Anaconda主要是搭建python的虚拟环境,之后我们进行yolov7的detect和train都会在终端进行
下载官网:Anaconda | The World's Most Popular Data Science Platform

选择对应的电脑版本安装:

勾选环境变量:

在安装Anaconda的过程中基本上是没啥坑的,也很少出现安装失败的过程。如果安装失败,可以参考以上的视频链接或者私信我进行讨论。
pycharm是编译运行python的平台,yolov7的源码基本都是python语言,所以安装pycharm有助于之后打开yolov7相关源码进行分析查看
下载官网:PyCharm:JetBrains为专业开发者提供的Python IDE
进入官网点击下载就ok,下载community就行了

pycharm的安装也不会有什么大问题的,就是正常的安装路径,大概率不会出错。
cuda这里我直接标红了,对于第一次安装cuda的小白来说,这会存在非常之多的问题。所以这里我会详细的进行介绍。
cuda是什么:
cuda:CUDA(Compute Unified Device Architecture,统一计算架构[1])是由英伟达NVIDIA所推出的一种集成技术,是该公司对于GPGPU的正式名称。透过这个技术,用户可利用NVIDIA的GPU进行图像处理之外的运算,亦是首次可以利用GPU作为C-编译器的开发环境。CUDA 开发包(CUDA Toolkit )只能将自家的CUDA C-语言(对OpenCL只有链接的功能[2]),也就是执行于GPU的部分编译成PTX中间语言或是特定NVIDIA GPU架构的机器代码(NVIDIA 官方称为 "device code");而执行于中央处理器部分的C / C++代码(NVIDIA 官方称为 "host code")仍依赖于外部的编译器,如Microsoft Windows下需要Microsoft Visual Studio;Linux下则主要依赖于GCC
上面是对cuda的介绍,简要来说cuda是我们电脑gpu必要的开发包,我们后面所有的训练推理以及转onnx模型乃至于pytorch的安装都需要cuda与GPU的结合。直白的说,你没有cuda,你的GPU在深度学习中啥也不是,就是个摆设而已。(当然你要是没有GPU,就当我说的都是废话吧)我相信大多数同学的电脑还是带有GPU的,并且毕竟是图像处理,深度学习,在后面我们就会知道GPU推理速度可以是CPU的几十倍,只有使用GPU才能把yolov7的强大表现出来。
我们先不急着去找cuda官网进行安装,首先我们要先知道自己显卡的属性,我们的显卡支持什么版本的cuda。首先 WIN +R cmd运行:
输入nvidia-smi

然后我们会看到表格的右上角有一个 CUDA Version:11.6 博主我的电脑显卡是RTX 3070,所以最高支持CUDA 11.6版本,所以说如果超过11.6版本的cuda我的电脑是没能力支持的,我只能安装cuda 11.6以下的版本。11.6是当前较新的版,强烈建议:不要安装最新的版本cuda,这样后续其他环境的安装可能就找不到对应的版本,导致重新安装会非常的麻烦 所以我安装的是cuda 11.0版本 如果你的显卡不支持11.0以上版本就安装你相对应能够匹配的版本。
接下来,删掉你电脑里存在的所有nvidia的插件(不要害怕,之后可以下载回来)
打开你的控制面板,卸载程序:

虽然说可以留那么一两个不卸载,但是我觉得能看到我博客的应该都是小白,所以我就不跟你们说那么多了,直接全部卸载,以绝后患。
这里仍然还存在一个问题,也是之后会导致你安装失败并且百思不得其解的bug,就是你的cuda和VS版本的问题,我的建议是如果你的显卡支持11.0以上版本cuda,就先安装vs2019,如果是其它版本的VS直接先卸载重装VS 2019 ,如果你的cuda版本只支持10.2以内,那么你先把VS卸载,并且不要安装,我们先老老实实的安装cuda去。
cuda下载官网:CUDA Toolkit Archive | NVIDIA Developer
选择你要下载的版本:

然后我们进入下载页面后选择local 本地下载,方便如果安装失败,可进行重新安装。


选择同意并继续
如果你是按我说的卸载所有的nvidia插件并且卸载了VS,那么直接精简安装就ok

如果你是第n次安装了,并且装有VS,选择自定义之后,就勾选第一个CUDA就ok,其他都不要勾选,否则非常容易安装失败

点开CUDA, 取消Visual Studio Integeration的勾选,这也是常见的一个安装失败的原因
接下来不要轻易改动默认路径,一般都在c盘

之后一切正常的话就安装成功了

查看环境变量
点击设置-->搜索高级系统设置-->查看环境变量
手动添加以下两个变量

系统会自动生成以下两个变量,如果没有,也请手动添加

接下来我们就要验证验证我们的cuda安装的是否成功了。
同样的win +R cmd进入,输入nvcc -V
如果能看到自己的版本号,就说明基本没有问题了,当然网上还有其他更保险的验证方式,可以到其他博客去看看,有很多,这里就不细说了。接下来我们安装cudnn
下载官网:CUDA Deep Neural Network (cuDNN) | NVIDIA Developer
这里的问题也不大,基本不会有啥错误,进入网址,选择与cuda相对应的cudnn版本进行下载

第一次下载的话,可能需要nvidia的注册,自己就注册一下。然后选择realeases

下载完对应版本的cudnn之后会得到一个文件夹。
复制bin include lib

然后找到我们cuda的默认路径的文件夹,你们的会和我的相同,然后直接将刚刚复制的bin lib include, ctrl v进去就完成了

ok,到现在我们已经把必要的 Anaconda pycharm cuda cudnn都已经安装完成了,外部的这些环境已经安装完毕,我们接下来要终端虚拟环境的安装,也就是yolov7直接需要的终端环境。
win+R cmd进入终端 输入 conda create -n 环境名 python=X.X
环境名自己取,python版本建议3.7以上,我用的是python 3.8
强调:此刻关掉电脑VPN

创建好自己的虚拟环境之后,通过activate yolo(环境名)进入到指定环境 deactivate退出环境

接下来我们就在创建好的环境下,安装pytorch
下载官网:PyTorch
到previous中去寻找对应自己cuda版本的pytorch
选择wheel下的pip下载指令,我选择的是对应cuda 11.0的,复制pip指令

进入刚刚创建的环境,然后将指令复制进去,回车下载安装pytorch
强调:关掉电脑的所有VPN

然后就是一系列的安装,我们检查我们的pytorch版本
activate 进入环境之后输入python
进入python命令端后输入import torch
torch.__version__

输出对应型号的时候就说明安装成功了(我cuda是11.0但是我安装pytorch是对应11.3的,其实问题也不大,但是不建议,之后如果要用export转onnx的时候我会再说)
至此python版本所需要的外部环境安装都已经准备好了,那么下一篇博客我将会详细的介绍yolov7的推理和训练以及检测
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub