新闻公告关注获取即时动态
< 返回

Ubuntu18.04系统深度学习环境配置

2020-11-09 09:08:56 来源:蓝队云 阅读量:3172


本文以ubuntu18.04为系统建立深度学习环境配置,针对笔记本双系统。

1. 系统安装

在Ubuntu官网下载最新的ubuntu18.04镜像文件。找一个空u盘制作系统启动盘,安装系统。建议安装英文版本。本文实验对象主要针对的是笔记本windows双系统版本的一个安装。(切记给ubuntu分配多点的内存,数据很大,且搭配固态效果更佳。)

运行下列命令,做好一些铺垫:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install build-essential


2.安装Nvidia显卡驱动

由于一些系统默认显卡驱动的原因,网上的PPA安装显卡驱动的方式并不可以直接安装,且安装过程的网速极其缓慢,所以本文在安装显卡驱动这一步选择采用的是从官网下载合适的驱动文件,从文件安装。

 

2.1 首先禁用Ubuntu18.04默认的系统显卡驱动

打开系统名单,运行以下命令:

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

将下列代码增加到blacklist.conf文件的末尾:(都是黑名单)

#for nvidia display device installblacklist vga16fbblacklist nouveaublacklist rivafbblacklist rivatvblacklist nvidiafb

保存,然后在命令行中更新initramfs,运行:

sudo update-initramfs -u

重新启动计算机,运行:

sudo reboot

运行以下命令,查看是否禁用成功,若无输出则禁用成功:

lsmod | grep nouveau

2.2 Nvidia显卡驱动安装

首先卸载之前安装过的显卡驱动(如果之前安装过,安装失败的什么的),确保卸载干净。

sudo apt-get --purge remove nvidia-*

在Nvidia的驱动官网下载适合自己的驱动文件。根据官网显卡分类进行选择,如GTX800series(Notebook)。选择合适的版本。由于不同的版本显卡驱动对CUDA版本支持的情况是不同的。所以选择的时候根据CUDA需要选择对应的稳定版本。

本文测试的是CUDA9.0+410驱动(下载下来文件为NVIDIA-Linux-x86_64-410.78.run)

运行以下命令,赋予下载下来的驱动文件可执行的权限

sudo chmod +x NVIDIA-Linux-x86_64-410.78.run

运行下列命令安装驱动,并按照提示安装。(ubuntu18是不需要关闭图像化界面安装的,但ubuntu16需要关闭图像化界面。方便一些,而且少很多网上出现的安装问题)

sudo ./NVIDIA-Linux-x86_64-410.78.run

在命令框中输入下列命令,若输出下列,则安装成功

nvidia-smi

image.png 

更新内核,并重新启动计算机

sudo update-initramfs -u

sudo reboot now


3.降低g++/gcc版本

3.1 安装相关依赖库

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

3.2 由于CUDA的gcc/g++的版本要求是5.x或6.x,所以需要降低系统的gcc/g++版本

gcc --version #查看gcc版本

#5.x gcc/g++版本安装:

sudo apt-get install gcc-5

sudo apt-get install g++-5

3.3 通过命令换掉系统版本

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50


4.安装CUDA9.0

进入CUDA官网下载相对应的文件,选择相对应的版本,目前官网无ubuntu18的选项,选择ubuntu17.04或16.04均可,总共有五个文件按照官网相应的顺序及命令安装即可。

sudo sh cuda_9.0.176_384.81_linux.run #仔细阅读每一个安装的选项,在进行下一步,其中有一步是安装显卡驱动,选择no,前面已经安装了。

sudo sh cuda_9.0.176.1_linux.run

sudo sh cuda_9.0.176.2_linux.run

sudo sh cuda_9.0.176.3_linux.run

sudo sh cuda_9.0.176.4_linux.run

在~/.bashrc 中添加环境变量:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}#添加PATH

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

export CUDA_HOME=/usr/local/cuda

#大括号{}里面的意思类似于程序语句,将新加入的路径加入到原PATH中,PATH中有很多路径

运行生效,完全生效重启

source ~/.bashrc

sudo reboot now

重启后,测试CUDA是否成功,若Result = PASS,表明CUDA安装成功。

cd ~/NVIDIA_CUDA-9.0_Samples/1_Utilities/deviceQuery

make -j4  

sudo ./deviceQuery


5.安装CUDNN

CUDNN是一个常见神经网络的加速库,简单的来说与CUDA相比,其是更加优化的神经网络加速工具。

在CUDNN官网下载相对应版本的CUDNN文件,这里需要注册一个账号。一定要根据系统之前的版本选择对应的合适版本。

我这里下载的是cudnn-9.0-linux-x64-v7.4.1.5.tgz对应CUDA9.0

用tar命令解压,得到cuda的文件夹:

tar -zxvf cudnn-9.0-linux-x64-v7.4.1.5.tgz

拷贝相关文件到上面安装的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*


6.安装Virtualenv/Anaconda/Miniconda

virtualenv将python环境单独分离出来,更加轻巧。Anaconda相对来说功能更为强大。

下面简单的记录一些基本的用法,具体的更详细的可以访问官方文档或他人详细的博客等。

6.1 Virtualenv的安装及其使用

sudo apt-get install python2.7 python2.7-dev#安装python2.7 便于创建2.7的环境,2020年python2.7将不再会获得支持,而今年已经2019了。

sudo apt-get install virtualenv#安装virtualenv

创建及删除环境

virtualenv -p /usr/bin/python3.6 pytorch_1.0_36 #指定python编辑器版本3.6,创建一个名为pytorch_1.0_36的环境

source ./pytorch_1.0_36/bin/activate #启动环境

deactivate #关闭环境

rm -r pytorch_1.0_36 #删除环境

#virtualenv不指定位置则是在当前目录下创建的环境,其路径是绝对路径,所以Virtualenv创建的环境位置无法移动,否则会出问题。

在激活的环境中安装pytorch:

#pip可以更改源到阿里,速度会快很多

mkdir ~/.pip

cat > ~/.pip/pip.conf << EOF

#输入下面结果

[global]

trusted-host=mirrors.aliyun.com

index-url=https://mirrors.aliyun.com/pypi/simple/

EOF

#安装pytorch

pip3 install torch torchvision

6.2 Anaconda/Miniconda的安装及其使用

下载

Anaconda官网下载文件,建议安装Miniconda,感觉更轻量级一些,占用的空间也少很多。

安装

bash Anaconda3-5.3.0-Linux-x86_64.sh #这个自带的pyhon=3.7

创建及删除环境

conda create --name pytorch_1.0_36 python=3.6 #创建python为3.6的虚拟环境

conda activate pytorch_1.0_36 #激活环境

conda deactivate #退出环境

conda remove --name pytorch_1.0_36 --all  #删除pytorch_1.0_36环境

6.3 总结

ubuntu中python是最大的依赖项,virtualenv与conda最大的区别在于python环境的独立性。相对来说virtualenv略微的独立一些。


7.其他

windows上的一些sublime文本编辑器,chrome都可以在这上面安装,效果也非常好,命令如下:

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub  | sudo apt-key add -

sudo apt-get update

sudo apt-get install google-chrome-stable

启动Chrome 浏览器,位置在/usr/bin/google-chrome-stable,随后添加到状态栏。

也可以在设置中安装中文输入源,这样搜索一些中文也很方便,但系统还是推荐英文。(关闭图形化界面的黑框不支持中文)