ubuntu 18.04搭建深度学习环境(软件部分)

步骤:
(一)ubuntu 18.04操作系统
(二)安装显卡驱动程序
(三)安装cuda驱动程序
(四)安装cuDNN驱动程序
(五)安装pytorch
(六)安装tensorflow-gpu
注:pytorch和tensorflow在系统环境安装,未采用conda

(一)ubuntu 18.04操作系统
操作系统是由同事帮忙安装,并且不带NVIDIA显卡驱动和CUDA驱动。因为之前安装了一版ubuntu20.04,集成了NVIDIA显卡驱动和CUDA驱动,出现驱动和tensorflow-gpu不匹配的情况,具体原因未知。所以,同事友好地重新装了一版ubuntu 18.04,然后驱动从NVIDIA官网下载自行安装。

(二)安装显卡驱动程序
1、下载显卡驱动程序
驱动程序下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn
按环境进行选择,下载界面如下:


下载后的文件格式:NVIDIA-Linux-x86_64-460.80.run(我的版本)
2、禁用默认显卡驱动
安装.run文件之前,禁用Ubuntu18.04默认的系统显卡驱动,命令如下:

// 修改属性
$sudo chmod 666 /etc/modprobe.d/blacklist.conf  
//用vim打开
$sudo vim /etc/modprobe.d/blacklist.conf
// 在最后一行加入以下几句,保存退出
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
// 对刚才修改的文件进行更新
$sudo update-initramfs -u
// 最好重启一下服务器
$sudo reboot
//若执行完该句,没有任何输出,则nouveau被成功禁用
$lsmod | grep nouveau 

3、卸载旧版本的nvidia驱动
因为我的系统不带nvidia驱动,可以不卸载,但如果已经有nvidia驱动,执行以下语句卸载:

$sudo apt-get remove --purge nvidia*

4、安装gcc编译
如果没有安装,或者版本不对应,有可能会导致驱动安装失败。(我的版本7.5.0)

$sudo apt-get  install  build-essential \\安装gcc
$gcc --version \\检查gcc是否安装成功

如果有提示g++或cmake没安装,执行以下语句:

$sudo apt-get install g++
$sudo apt-get install make

5、安装新的nvidia驱动
有资料说需要关闭图形界面,我并没有操作这一步。直接执行以下命令,并按提示安装。

//进入文件所在目录下
$cd /home/xxx/
//修改权限
$sudo chmod a+x NVIDIA-Linux-x86_64-xxx.run
//执行安装
$sudo ./NVIDIA-Linux-x86_64-460.80.run

安装成功后,输入:nvidia-smi,显示以下界面便是成功。

更新内核,并重新启动计算机(这一步非必须,但最好有)

//更新内核
$sudo update-initramfs -u
//重启服务器
$sudo reboot now

(三)安装cuda驱动程序
1、下载cuda驱动程序
下载地址:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=18.04
按照版本环境进行选择,下载界面如下:


2、安装程序
选择完版本后,会生成几条安装语句,执行生成的语句即可,建议安装方式采用runfile[local]:

$wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run
$sudo sh cuda_11.3.1_465.19.01_linux.run

3、配置环境变量

$sudo vim ~/.bashrc \\进入vim界面。输入字母i,进入编辑模式
//在bashrc文件中输入以下命令,注意修改你的cuda版本
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64
export PATH=$PATH:/usr/local/cuda-11.1/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.1
//输入完成后,点击esc键并输入:wq!,再按esc键退出vim。
//运行.bashrc文件
$source ~/.bashrc 
//重启服务器
$sudo reboot now

4、检查安装成功
输入:nvcc --version,出现以下界面,便是成功。


注:我安装的明明是cuda11,nvcc -V显示版本是9.1,不知道问题出现在哪里,最后也好像没啥影响。如有大佬知道,请评论留言。

(四)安装cuDNN驱动程序

cuDNN其实不用安装,是把文件下载下来放在cuda指定的目录下。
1、下载cuDNN
下载地址:https://developer.nvidia.com/rdp/cudnn-archive
下载界面如下,也是按照版本选择的,下载后是一个压缩包:

2、安装

//用tar命令解压,得到cuda的文件夹:
$tar -zxvf cudnn-11.2-linux-x64-v8.1.0.77.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*

cuDNN驱动程序就算安装好了。

(五)安装pytorch
安装语句:

pip3 install torch==1.7.0+cu110 torchvision==0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

安装pytorch一般不太有问题,完成后按以下程序进行测试:

 //运行python (启动命令与你上文中起的别名有关)
$python3
$import torch
$torch.cuda.is_available() \\输出True则安装成功

可以用pytorch对cuda版本和cuDNN版本进行打印:

import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())

(六)安装tensorflow
安装语句(豆瓣源加速更快):

pip3 install tensorflow-gpu==2.4.0 -i http://pypi.douban.com/simple

这里可能遇到的问题:
1、提示:no matching distribution found for tensorflow-gpu==2.4.0
这里我踩了一个巨大的坑,我的系统里有两个版本的python:python2.7和python3.6。用pip安装tensorflow-gpu==2.4.0应该不会成功,因为在两个版本的情况下,pip是为python2.7安装,python2.7最高能安装tensorflow_gpu-1.15.0版本和tensorflow2.1.0。用pip3也安装不成功,因为pip3的版本只能升级到9.1版本(这里不知道为什么)。最后解决的方式是:卸载了python2.7,只留python3.6,然后pip3就能升级到21.1版本,tensorflow-gpu==2.4.0安装成功。
2、import tensorflow之后,不报错,但提示一堆以下文字:


解决方式是:进入dtype.py,修改对应行的代码,把np.dtype([("quint8", np.uint8, 1)])修改为np.dtype([("quint8", np.uint8, (1,))]),一共修改了6行。
3、import tensorflow之后,不报错,但tf.test.is_gpu_available()输出是False。
导致这个问题的原因很多,我的原因是我在安装tensorflow-gpu==2.4.0之前,安装了tensorflow1.14.0。解决的方式是:卸载tensorflow1.14.0。
4、import tensorflow之后,tf.test.is_gpu_available()输出是False,并提示:

解决方式一:运行sudo ln -s /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcusolver.so.11 /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcusolver.so.10,这里的路径需要和本机保持一致。(对我没起作用)
解决方式二:运行sudo ln -s /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcusolver.so.11 /usr/local/lib/python3.6/dist-packages/tensorflow/python/libcusolver.so.10,这里的路径需要和本机保持一致。(对我起作用了)

测试语句:

import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 
print('GPU', tf.test.is_gpu_available())
a = tf.constant(2.0)
b = tf.constant(4.0)
print(a + b)

输出:
GPU True
tf.Tensor(6.0, shape=(), dtype=float32)

以上安装完毕!
参考:
https://www.landui.com/help/nshow-10631.html
https://blog.csdn.net/m0_37412775/article/details/109355044

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容