中国史之【伏羲创八卦】:
伏羲,是华夏民族的人文始祖,是“三皇五帝”中的“三皇”之首。其根据天地万物的变化,发明创造了占卜八卦,开启了中华民族的文化之源。
–来源:全历史APP
上两期,手把手带大家配置了window10的深度学习环境。具体可以参考【深度学习环境配置】手把手实战配置深度学习环境(win10版)。奈何github的代码都是linux系统的,想要复现有些还需要gcc编译。这就必须要弄个linux系统来跑代码了。
于是,就有了此文。这年头,应该不会还有人不会装双系统吧?犹记得大二的时候,为了装个双系统,特别是磁盘划分,足足折腾了我一周。而大佬过来插个U盘就完事,妥妥的一个装×技能。
这里我就不介绍怎么装双系统了。但是可以推荐一个比较好的教程:
https://www.cnblogs.com/masbay/p/11627727.html
这篇博客介绍得非常全,基本照着里面的流程走,不会出问题。其中,制作系统盘,不用那么麻烦,推荐使用ventoy(百度搜搜官网)。这个工具太好用了,可以管理多个系统镜像,也就是专门装系统的管理系统。换句话说,要装系统时,不用每次都把U盘格式化,它可以存放多个镜像,插进去主机,按F12进入BIOS就能一键装系统。
另外,我的U盘就存放着win10和ubuntu20.04的镜像。再安利一个宝贵小站:
https://msdn.itellyou.cn/
这个网站上面放着多个系统镜像,非常纯净,纯免费。给站主一个大大的赞。先在自己U盘安装ventoy,然后直接把镜像复制到U盘上,就可以一键装机了。
言归正传——配置ubuntu的深度学习环境。
以下的所有过程都亲手跑通,算是非常详细的。
本文的前提要求有:英伟达独立显卡(本实验基于NVIDIA 1050ti)、ubuntu。配置的软件包括:CUDA 10.1、cuDNN 7.5.1、python 3.6、Pytorch 1.5.1。这个版本配置也是我使用最多、比较稳定的环境配置。具体过程如下:
显卡驱动是个刺头,你开开心心地配置好环境,pytorch也装好了,cuda也配置了,重启了一下,突然发现系统找不到驱动了,连桌面图标都变大了。难受啊!
我们先检查一下自己电脑是否已经有驱动,使用命令:
nvidia-smi
这里显示我还没有驱动,所以要装一个。我之前的一个错误做法是随便下载一个,比如使用命令:sudo apt install nvidia-460,然后就装上驱动了,一重启,完了,驱动又找不到了。这是因为系统内置一个驱动,手动安装也有一个驱动,必须匹配上版本,不然就会出问题。
可以查看显卡硬件型号以及推荐安装的驱动,命令是:
ubuntu-drivers devices
从这里可以看出,识别出我的显卡是1050 Ti,推荐我安装的是470。这样就可以直接使用命令下载:
sudo apt-get install nvidia-driver-470
也可以使用命令:
sudo ubuntu-drivers autoinstall
这时候安装的也是推荐的470版本。不要学我手贱,非要装个460版本,结果就是重启后nvidia-smi找不到驱动,冲突了。这时候也不要担心,删掉再装即可。
但是,对于ubunut20.04,建议直接使用系统自带的“software and update”,在里面自动安装。不要用命令行安装,就算使用命令行安装,也必须要和系统内核的版本一致。
还要注意的是,安装完后直接重启。不要直接试一下nvidia-smi出现:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
就各种折腾。重启可以解决90%的问题,真不是开玩笑。重启后输入nvidia-smi来验证一下,应该可以看到显卡信息了。
Anaconda是一个管理各种环境,各种包的平台。学深度学习的应该都知道吧。反正就是配置环境很方便,配错了删掉即可。
首先,打开Anaconda官网:
https://www.anaconda.com/products/individual-d#Downloads
直接下载linux版本,下载完成后,找到对应的路径进行安装。
Anaconda安装很方便,使用命令:
bash Anaconda3-2021.05-Linux-x86_64.sh
接着一直回车,一直回车,直到看完许可协议(好像按空格可以跳过)。接着输入Yes,同意安装。设置路径时,直接回车即可。最后,他会问你是否运行conda init,我直接写No(我也不知道为啥)。
这样就安装完成了。但是还有一点要做的是,把Anaconda的python环境和ubuntu系统自带的python区分开。
先下载个vim吧,听说厉害的人都用它。
sudo apt-get install vim
然后使用vim打开~/.bashrc文件
sudo vim ~/.bashrc
按i进入编辑模式,在文件最后加上:
alias python3="/usr/bin/python3.8"
export PATH="/home/xxx/anaconda3/bin:$PATH"
第一行是指将系统自带的python命名为python3,然后加上Anaconda的python。注意,这个xxx要改为自己的路径,比如我的是jackko。
改完后按ESC退出编辑模式,然后输入:wq保存退出。别忘了激活刚修改的文件:
source ~/.bashrc
测试一下刚才的修改:
可以看到,在终端输入python,打开的是Anaconda环境;而输入python3,打开的是linux内置的环境,这说明我们配置对了。
这一步和win10上操作是一样的命令,具体可参考【深度学习环境配置】手把手实战配置深度学习环境(win10版)。常见的命令有:
conda create -n learnTorch python=3.6
conda activate learnTorch
这里的learnTorch是我的环境名,可以根据需要自己更改。
如果使用conda打开环境出错,那就试一下:
source activate learnTorch
安装完成后如图所示。进入环境后,可以看到左边有个括号,写着环境名,这就表明了已进入的环境。
补充一些常用的conda命令:
查看当前有什么环境:conda env list
从B中复制conda环境,命名为A,使用:conda create -n A --clone B
删除环境:conda remove -n learnTorch --all
查看当前环境的包:conda list
退出当前环境:conda deactivate
基本上使用这几条conda命令,已经足够平时的学习了。特别是复制环境,我习惯上建一个基本的环境,配置好pytorch或者tensorflow。如果需要复现某篇论文时,就直接copy环境,然后再根据具体的需要去安装包。
在ubuntu上配置国内清华镜像,可以让你的包下载快很多。平时经常使用的下载命令是:
sudo apt-get install XXX
conda install XXX
pip install XXX
对于sudo apt-get,建议直接去“software and update”那里,选择国内的阿里云。
对于conda配置清华镜像,只需要在终端输入:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
有时候conda下载还是挺慢的,所以我更常用的是pip下载。没有pip的,先要用conda进行安装。conda install pip。然后再配置镜像,命令是:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
当然,你也可以选择阿里镜像,豆瓣镜像,反正我是用清华镜像是挺快的。
pyTorch其实是不需要自己安装cuda,也能用显卡。也就是说,可以自动匹配硬件,不需要自己指定cuda。
去官网挑选自己想要的版本:
https://pytorch.org/get-started/locally/
可以使用官方推荐的命令:
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
因为我想要安装cuda10.1的版本,所以我指定了版本。注意,30系列的显卡好像是只能安装cuda11.0以上的,如果装10.1,会导致加载模型很久出不来。
但是安装过程还是太慢了,所以我是用pip下载:
pip install torch==1.5.1+cu101 torchvision==0.6.1+cu101 -f https://download.pytorch.org/whl/torch_stable.html
从这里看,速度还是挺快的。接着就慢慢等安装完成。安装完成后测试一下:
这里也可以看到cuda是可用的,所以pytorch-gpu的安装还是很方便的,只需要一句命令。
另外,学计算机视觉的,还是装一个opencv吧:
pip install opencv-python
这句命令安装的是最新版,当然也可以指定版本。对于镜像没配置好的,也可以在下载包的时候,指定源。用一下豆瓣源:
pip install opencv-python==4.5.1.48 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
但是,但是,有些包必须要验证nvcc -V可以查看cuda版本,不然就会出错。比如专用于GPU进行矩阵运算加速的包cupy,听说速度吊打numpy。这种就必须安装指定版本的cuda包了。
(1)安装cuda
因为pyTorch版本安装的cuda是10.1的,所以我们安装的cuda也需要10.1版本,也是常用的版本。
安装cuda可以去官网下载,但是也是比较慢。如果配置了清华源,在终端下载也是挺快的,亲身体验。使用命令:
wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
注意找准自己想要的版本。
下载完后,找到对应的路径,进行安装。
sudo sh cuda_10.1.243_418.87.00_linux.run
这里也会遇到很多问题。
比如:
这里就说没有gcc,所以需要安装一下。另外,通常ubuntu自带的系统,安装的都是较新的gcc-9。但是,通常我们不需要这么高的版本,特别是复现代码的时候,常常需要遇到gcc降级。
降级gcc的操作如下:
# 下载需要的版本
sudo apt-get install gcc-7
sudo apt-get install g++-7
# 删除旧版本
sudo rm /usr/bin/gcc
sudo rm /usr/bin/g++
# 建立新的软连接
sudo ln -s /usr/bin/gcc-7 /usr/bin/gcc
sudo ln -s /usr/bin/g++-7 /usr/bin/g++
#查看版本
gcc -V
g++ -V
然而,还是有可能遇到问题。直接显示安装失败。这里推荐两条命令都试一下。我也不懂,反正it works.
sudo sh cuda_10.1.243_418.87.00_linux.run --override
sudo sh cuda_10.1.243_418.87.00_linux.run --override --librarypath=/usr/local/cuda-10.1
如果第一条不行,就试一下第二条命令。
运行后,需要勾选几个选项。因为我们已经有了驱动,所以不需要再装驱动。而其他sample也不需要装。我的选项如下:
最终出现以下画面,就是安装成功了。
接着,还需要将cuda的路径写进~/.bashrc文件中,先打开文件:
sudo vim ~/.bashrc
按i进入编辑模式,在末尾加上:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64
export PATH=$PATH:/usr/local/cuda-10.1/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.1
然后按ESC退出编辑模式,输入:wq即可保存退出文件。最后激活和测试一下:
source ~/.bashrc
nvcc -V
从图上可以看出,已经安装好cuda了,版本是10.1.243。
(2)安装cudnn
打开官网:
https://developer.nvidia.com/rdp/cudnn-archive
然后选择合适的版本,我选择的是7.5.1,然后下载。
下载后解压,打开里面找到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 /usr/local/cuda/lib64/libcudnn*
测试一下:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
我叫小保,一名计算机视觉爱好者、学习者、追随者,欢迎关注我一起学习。
参考链接:
https://blog.csdn.net/m0_37412775/article/details/109355044
https://www.freesion.com/article/54731320387/