ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch

GeForce MX150
Python3.6–cuda 9.0–cudnn 7–tensorflow-1.12.0

按多个教程安装前后也出了很多问题,最终才安装成功,以防万一,现将过程记录如下:

1.安装显卡驱动

注意:两种方法,方法一为我安装时所用,方法二为朋友推荐,更为简便
方法一:

查看NVIDIA图形卡及推荐驱动:

ubuntu-drivers devices

例如我的是 GeForce MX150,推荐驱动为nvidia-driver-450,故执行命令:

sudo apt install nvidia-driver-450

我当时没截图,不清楚的可以参见参考https://blog.csdn.net/u010801439/article/details/80483036
重启:

sudo reboot

查看驱动是否安装成功:
可以 系统配置->详细信息->关于,查看图形处理是否对应于自己的独立显卡;也可以终端执行:

nvidia-smi

得到类似如图即成功:
ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch_第1张图片
方法二:
软件与更新->附加驱动,将驱动改选为NVIDIA的就行了

2.安装cuda

cuda-10.2对应的cudnn没出,故我安装的为9.0,通过runfile(local)安装
(1)下载
网址:https://developer.nvidia.com/cuda-90-download-archive
ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch_第2张图片
ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch_第3张图片参考教程里说第一个是主文件,其它三个相当于补丁,反正我最终只安装了第一个的,后面三个安装均相似,是否安装自主选择。
(2)gcc降级
由于cuda 9.0仅支持gcc 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,故先手动进行降级:
先安装4.8版本的gcc和g++

sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8

查看链接:(发现不是4.8)
进入到/usr/bin目录下

ls -l gcc* 
ls -l g++*

故再将链接改到4.8版本

sudo mv gcc gcc.bak #备份
sudo ln -s gcc-4.8 gcc #重新链接
sudo mv g++ g++.bak
sudo ln -s g++-4.8 g++

最终查看:(显示4.8)即成功

gcc -v
g++ -v

(3)安装cuda-9.0
在文件所在文件夹右键->在终端中打开,将下载网址上命令的复制到终端执行就好

sudo sh cuda_9.0.176_384.81_linux.run

注意:它会先弹出一个说明,最低端显示的【–更多–0%】是读说明的进度,而不是安装进度!!!因此不停enter下滑到说明结束处,将回答一系列问题进行安装,除了咨询是否安装NVIDIA驱动的回答n以外,其它y就好,地址按默认的就好。参加下图:
ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch_第4张图片
ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch_第5张图片

(4)修改.bashrc文件

sudo vim ~/.bashrc

加入下面三句,若已有可以将cuda指定为安装的9.0版本,例如:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export PATH=$PATH:/usr/local/cuda-9.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0

3.安装cudnn

(1)下载
我安装的为cuda-9.0对应的cudnn,需要注册登录才能下载
网址:https://developer.nvidia.com/rdp/cudnn-archive
ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch_第6张图片
(2)安装
找到下载的压缩文件解压(右键->提取到此处),解压后的文件夹名称为cuda,在此目录下右键->在终端中打开,再将其中的内容复制到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*

4.安装tensorflow

(1)安装
我的是python3.6\cuda9.0,根据下面的对应表,我安装的为1.12.0版本
ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch_第7张图片
使用清华源进行加速安装命令如下:

sudo python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==1.12.0

或者

sudo pip3 install tensorflow==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

(2)检验

python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
输出

Hello,TensorFlow!成功!

附1:相关网址

123安装显卡驱动+cuda+cudnn参考教程:https://blog.csdn.net/u010801439/article/details/80483036
4安装TensorFlow参考教程:https://blog.csdn.net/ignoreyou/article/details/81079304
查看cuda&cudnn版本网址:https://blog.csdn.net/weixin_41677877/article/details/90003592
查看tensorflow-python-cuda-cudnn对应关系的网址:(请耐心往后翻翻,有个表格的)
https://tensorflow.google.cn/install/source
tensorflow官网[可下载]:
https://tensorflow.google.cn/install/source
通过pypi下载tensorflow文件网址:
https://pypi.org/project/tensorflow-gpu/1.12.0/#files)

附2.安装pytorch
python3 -m pip install --upgrade torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple

最后我用mtcnn的demo进行测试,可以正常使用!

附3.总结问题

总结安装过程中遇到的问题及解决办法:
第一次
1.安装时发现需要对gcc进行降级,直接百度没有找到教程:
此文方法
2.看某教程说需要先上cuda官网查看支持的设备型号,发现我的GeForce MX150表格里没有,网上也有的说该型号不支持:
最后找到GeForce MX150官网,显示支持cuda…
3.安装显卡驱动使用方法较为复杂,且完cuda+cudnn后关机再开,卡在登录界面无法进入,搜索推测为驱动出问题,尝试多种方法都无法解决:
最终通过tar解压恢复系统(参见博客)
第二次
1.装显卡驱动时按第一次思路先禁用nouveau,发现始终无法禁止,故先跳过:
最终发现文中两种安装好像都不需要先禁用nouveau,反正我跳过装完后查看发现nouveau是禁止了的
2.安装cuda徘徊于安装9.0还是9.1、采用deb文件还是runfile文件安装,最后反正不知道为啥装完cudnn(对应cuda-9.0的)查看版本却发现cuda是10.0版本…有博客说安装时未制定版本容易导致它自动升级???担心后续出错,故:
最终卸载cuda重装,参考https://blog.csdn.net/qq_41558173/article/details/96447300
第三次
1.安装tensorflow未用清华源进行加速,安装超级慢,且经常因为超时报红色警告终止安装:
最终在pip3 install命令后加上**-i https://pypi.tuna.tsinghua.edu.cn/simple**快速解决
解决参考:https://blog.csdn.net/qq_42009634/article/details/100148454
2.测试tensorflow出错
import tensorflow as tf 之后出现这些提示符:
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:493: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_qint8 = np.dtype([(“qint8”, np.int8, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:494: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_quint8 = np.dtype([(“quint8”, np.uint8, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:495: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’.
_np_qint16 = np.dtype([(“qint16”, np.int16, 1)])
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/dtypes.py:496: FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’
解决参考:https://blog.csdn.net/cufe_shang/article/details/100338443

你可能感兴趣的:(笔记)