Ubuntu下配置运行yolov3项目的环境(数据集、上github、anaconda、vscode、nvidia驱动、cuda、cuda编译、cudnn)

前面已经完成了windows下训练基于pytorch的yolov3,接下来学习在ubuntu下训练。

看了一点csdn,现在要解决的问题有两个:

1、ubuntu下的指令,怎么编译?怎么运行?

2、darknet所使用的标签是txt,又要格式转换。

数据集格式问题:

第2个问题我找到一个更好的项目,应该可以直接三种数据格式相互转换:

premkumar25/Convert_VOC_COCO_YOLO: XML parser to parse the PASCAL VOC annotiation xml's and convert it to .txt files (github.com)

新问题1:

我的xml文件是用程序从json转换来的,在pytorch下确实可以使用。但是现在要从xml转换为yolo用的txt文件出现一个问题:我转换过的xml文件里没有difficult这个类。

解决方法:

修改代码,因为difficult在voc的标签中如果取1代表该目标难以被识别,在转yolo代码中会忽略该目标,我之前直接json转xml根本没这个属性,所以把转换代码中跟difficult有关的都去掉就行。

ubuntu下上github方法:

新问题2:

ubuntu下上不去github了,因为没有fastgithub了。

解决方法:

1、似乎gitee就能找项目。

2、fastgithub,下载下来以后按照教程输入sudo ./fastgithub没用,但不知道进入root是否有用,正在尝试。进入root的方法是:

sudo passwd root设置一个密码

然后输入su,再输入刚刚的密码

要退出就输入exit即可。

似乎进入root也没用。

3、dev-sidecar,可以去gitee网站上找这个项目,下载的直接就是安装包。

事实证明,ubuntu下载东西真的慢,我的建议是在windows下载完用移动硬盘转移至ubuntu安装。

建议用这个网址下载:https://gh.api.99988866.xyz/https://github.com/docmirror/dev-sidecar/releases/download/v1.7.3/DevSidecar-1.7.3.deb

新问题3:

因为fastgithub实在是没有头绪,所以打算安装devsidecar,然后遇到一个问题。/opt文件夹在哪???

解决方法:

点开文件,会发现主目录没这玩意,这时应该点+其他位置,然后点计算机,就可以看到/opt文件夹和其他很多找不着的文件夹了。(一般deb安装的软件似乎默认都在/opt下)

新问题4:

打开word文档以及查询软件及安装软件

解决方法:

用LibreOffice Writer软件即可。

查询软件例如:sudo dpkg -L firefox

安装软件:sudo dpkg -i xxx.deb

其中xxx是你安装包的名字,复制粘贴过来就好。

新问题5:

安装dev-sidecar似乎要搞定安全证书的问题,以及要打开sudo不用输入密码的模式

解决方法:

sudo不用输入密码:

先输入sudo chmod +w /etc/sudoers

再输入su

这一步要是报错看这个:

Ubuntu下su:authentication failure的解决办法_山鬼谣me的博客-CSDN博客

输入密码后进入root模式

再输入visudo

光标下移至如图:

Ubuntu20.04 sudo免密码_ibless的博客-CSDN博客_ubuntu20 免密
Ubuntu下配置运行yolov3项目的环境(数据集、上github、anaconda、vscode、nvidia驱动、cuda、cuda编译、cudnn)_第1张图片
 

我输入的是%sudo ALL=(ALL:ALL)NOPASSWD:ALL

然后ctrl+o(保存),弹出”File Name to Write sudoers.tmp”,然后在tmp后按一下回车。再按ctrl+x(退出)。

原链接说groups指令我有点没看懂所以这样搞的。

上github网站最终解决方案:

兜兜转转又回到了fastgithub上:

FastGithub下载及使用 - 知乎

这里不用输入yum install libicu

直接输入后面的指令就行。

wget -c https://github.com/dotnetcore/FastGithub/releases/download/2.0.4/fastgithub_linux-x64.zip    # 下载FastGithub
 
unzip fastgithub_linux-x64.zip    #解压

cd fastgithub_linux-x64    #进入到FastGithub文件夹下

./fastgithub    #运行FastGithub

然后运行了./fastgithub之后把终端放在一旁就能访问github了。

我怀疑之前没弄好fastgithub估计是git clone下来的是windows下用的,里面压根没有fastgithub这个文件所以用不了。

看了一下确实是,应该去那个releases下去下载相应的安装包的。

配置yolov3-pytorch所需环境:

torch=1.2.0,官方推荐的Cuda版本是10.0,因此会用到cuda10.0,与cuda10.0对应的cudnn是7.4.1.5

记录一个小技巧:按tab可以自动补全文件名,很好用!!!

anaconda+vscode:

vscode似乎直接官网下个deb安装就行。

anaconda去官网上下载就行,下载下来的是个sh文件。

运行方法是:

sh xxx.sh

然后回车,按Q跳过条款,该yes的就yes,中间有一步是设置路径。

最后安装完用which python指令验证一下,如果指向anaconda下的说明可以。

这里注意一点,原来的终端最后which python可能还指向ubuntu自带的python,这里可以两种方法。

一种是重开一个终端输入which pythoin

还一种是输入source ~/.bashrc就可以刷新,再输入which python即可。

然后我记得在显示安装完成后还一行报错,不过目前没啥影响,我就先忽略了,之后遇到问题再说。

NVIDIA驱动、CUDA+CUDNN:

下面这个链接是装nvidia驱动的,我按照里面的步骤安装成功。

我的显卡:

NVIDIA GeForce Force 940M

产品类型GeForce
产品系列是 900M Series
产品家族940MX

ubuntu16.04安装NVIDIA显卡驱动或者更换高版本显卡驱动详细(下载.run包方式)_berry丶的博客-CSDN博客_ubuntu更换显卡驱动

cuda+cudnn:

ubuntu16.04安装CUDA10.0和对应版本的cudnn详细流程_berry丶的博客-CSDN博客_cuda10.0对应的cudnn版本

nvcc -V那步修改完bashrc文件后,要把终端关闭再打开,然后输入nvcc -V,凡是修改bashrc基本都有这步,或者source ~/.bashrc

编译cuda:

短短一个make花了我一个下午,甚至还不敢保证完全ok。

遇到很多错误,截过图的就有:

Ubuntu下配置运行yolov3项目的环境(数据集、上github、anaconda、vscode、nvidia驱动、cuda、cuda编译、cudnn)_第2张图片

Ubuntu下配置运行yolov3项目的环境(数据集、上github、anaconda、vscode、nvidia驱动、cuda、cuda编译、cudnn)_第3张图片

Ubuntu下配置运行yolov3项目的环境(数据集、上github、anaconda、vscode、nvidia驱动、cuda、cuda编译、cudnn)_第4张图片

 Ubuntu下配置运行yolov3项目的环境(数据集、上github、anaconda、vscode、nvidia驱动、cuda、cuda编译、cudnn)_第5张图片

记录下来看过的博客有:

1、

conda 安装R包报错:/bin/sh: x86_64-conda_cos6-linux-gnu-c++: command not found - 简书

2、

https://blog.csdn.net/qq_18649781/article/details/89848797

3、

ERROR: This cross-compiler package contains no program /home/zxm/anaconda3/bin/x86_64-conda_cos6-linux-gnu-gfortran

以及无数看过的。

我这里给一个我认为我解决编译问题的比较合理的思路:

解决思路:

        我觉得最核心问题离不开gcc、g++和gfortran(最后这个不一定)。所以这几个一定要正常,然后从报错图可以看出,除了这三个之外还一个很要命的是anaconda。第一张图的错误我在网上找到个要我装gcc_linux等等的,装好以后就有第二三个错误,第三个错误找了半天真找不到解决方法,第二个错误我看到一个这个说法:

unsupported GNU version! gcc versions later than 6 are not supported!_littlehaes的博客-CSDN博客

我还特地装了个gcc5的版本,生怕版本太高不支持。但是奇怪的是,这个错误依旧报,按理来说,我已经用低版本代替gcc执行,不可能版本太高。我最后冒出个想法,我用的apt-get install安装的,但是我的python指向的是anaconda下,并且第三个错误也解决不了,于是我想先得把anaconda解决,就把它给卸载了。

然后我再次make,报了最后一张图的错。于是我又想到下午看过的一篇博客:

Ubuntu16.04编译cuda_10.2实例遇到的问题_Amelie_xiao的博客-CSDN博客

不用make编译,而是用make -k忽略过程中的错误来实现编译,最后成功按上面这个博客的说法算是成功了。

但老实说,毕竟不是直接make编译的,我并不能保证这样就算cuda装好了,但至少上面的思路已经是我觉得最合理的了,也想不出更好的解决方法了。

反思:

说到底是因为我没有好好利用anaconda,当时其实不用直接卸载anaconda的,我既可以新创建一个环境,也可以去sudo gedit ~/.bashrc中注释掉有关anaconda的export。

cudnn:

按教程走就行

项目测试:

这基于我之前博客里的yolov3项目

conda create -n pytorch python=3.6

激活conda:source activate

source deactivate

 conda activate pytorch

conda deactivate pytorch

值得注意的是,anaconda同样需要更换下载源。

Anaconda切换国内高速源 - 简书
 

conda config --show-sources可以用来查看当前anaconda下载源

sudo gedit ~/.condarc

记得https改成http

pip install -r requirements.txt

pip3 install future

pip install tensorboard

用ubuntu跑了一下项目,感觉其实跟windows上的操作基本一样。

然后有两个注意:

1、[Errno 12] Cannot allocate memory

解决方法:

典中典之内存不够,把num_workers从2改到了0即可。

2、还是要先运行voc_annotation,因为即使用移动硬盘,ubuntu下路径和windows依旧不一样,还是得改好路径。

你可能感兴趣的:(pytorch,深度学习,caffe)