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

2023-11-08

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

得到类似如图即成功:
在这里插入图片描述
方法二:
软件与更新->附加驱动,将驱动改选为NVIDIA的就行了

2.安装cuda

cuda-10.2对应的cudnn没出,故我安装的为9.0,通过runfile(local)安装
(1)下载
网址:https://developer.nvidia.com/cuda-90-download-archive
在这里插入图片描述
在这里插入图片描述参考教程里说第一个是主文件,其它三个相当于补丁,反正我最终只安装了第一个的,后面三个安装均相似,是否安装自主选择。
(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就好,地址按默认的就好。参加下图:
在这里插入图片描述
在这里插入图片描述

(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
在这里插入图片描述
(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版本
tensorflow-python-cuda-cudnn对应关系表
使用清华源进行加速安装命令如下:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch 的相关文章

随机推荐

  • POJ 1062 昂贵的聘礼

    题面 年轻的探险家来到了一个印第安部落里 在那里他和酋长的女儿相爱了 于是便向酋长去求亲 酋长要他用10000个金币作为聘礼才答应把女儿嫁给他 探险家拿不出这么多金币 便请求酋长降低要求 酋长说 嗯 如果你能够替我弄到大祭司的皮袄 我可以只
  • linux安装rocketmq(有效)

    1 基于java maven环境搭建 linux java 搭建 linux安装java1 8 拒绝 emo的博客 CSDN博客 linux maven搭建 linux安装maven3 2 2 拒绝 emo的博客 CSDN博客 2 下载 A
  • 七大排序算法的基本原理及实现

    目录 1 排序的概念及引用 1 1 排序的概念 1 2 常见的排序算法 2 常见排序算法的实现 2 1 基于选择的思想 2 1 1 直接选择排序 2 1 2 堆排序 2 2 基于插入的思想 2 2 1 直接插入排序 2 2 2 希尔排序 缩
  • pycharm连接MYSQL数据库

    pycharm连接MYSQL 1 gt 使用pip工具 进入cmd 输入 pip install pymysql 回车进行安装 有网络的情况下进行 安装最新版的pymysql可以使用 python m pip install upgrade
  • 希尔排序(Shell Sort)

    如今是大数据时代 大量数据需要处理 便越来越需要跟优秀的算法 算法 Algorithm 是指解题方案的准确而完整的描述 是一系列解决问题的清晰指令 算法代表着用系统的方法描述解决问题的策略机制 也就是说 能够对一定规范的输入 在有限时间内获
  • strcpy和memcpy的区别

    1 strcpy函数 1 1 函数原型 char strcpy char dest const char src 1 2 函数功能 strcpy是一种C语言的标准库函数 strcpy把含有 0 结束符的字符串复制到另一个地址空间 返回值的类
  • linux:docker compose使用已经存在的网络

    问题 如题 参考 Networking in Compose Docker Documentation services networks network1 name my pre existing network external tru
  • vue2+ElementUI时间选择器限制可选范围为今天往前7天内的任意一天

    题目有2个重点 1 可选范围为今天往前7天 含今天 2 只能选择7天内的任意一天 由此可知 用户选择的最大日期和最小日期为同一天 即只能选择一天 也就是说 使用了时间范围插件 但是model中的两个日期是同一天 HTML
  • c# 位运算符

    说来惭愧 今天看别人提供的源码 看了这些运算符竟然有些记不起来 在这里就记录一下 首先认识这些运算符 按位与 其实与 逻辑运算符有一致的地方 下面会讲到 按位或 同样与 有类似的地方 按位取反 按位异或 lt lt 左移运算符 gt gt
  • Python爬取天气数据并进行分析与预测

    随着全球气候的不断变化 对于天气数据的获取 分析和预测显得越来越重要 本文将介绍如何使用Python编写一个简单而强大的天气数据爬虫 并结合相关库实现对历史和当前天气数据进行分析以及未来趋势预测 1 数据源选择 选择可靠丰富的公开API或网
  • 百度又开源一款压测工具,可模拟几十亿的并发场景,太强悍了

    dperf 是百度开源的一款基于 DPDK 的 100Gbps 网络性能和负载测试软件 能够每秒建立千万级的 HTTP 连接 亿级别的并发请求和数百 Gbps 的吞吐量 优点 性能强大 基于 DPDK 使用一台普通 x86 服务器就可以产生
  • burpsuite扩展集成sqlmap插件

    通常我们在使用sqlmap测试SQL注入问题的时候会先使用burpsuite来抓包 然后交给sqlmap进行扫描 此操作略显繁琐 为了避免这种繁琐的重复操作可以将sqlmap以插件的方式集成到burpsuite里面 实现request右击s
  • ConnectTimeout和ReadTimeout所代表的意义

    ConnectTimeout 指的是建立连接所用的时间 适用于网络状况正常的情况下 两端连接所用的时间 在java中 网络状况正常的情况下 例如使用HttpClient或者HttpURLConnetion连接时设置参数connectTime
  • GO语言学习-Sublime+Go语言环境搭建

    sublime text3 Golang 搭建开发环境 1 引言 sublime text3搭建Golang的开发环境顺序为 1 安装Golang 2 sublime 安装 Gosublime 3 修改Gosublime中的配置 使之支持G
  • 基于蓝牙技术使用stm32制造一个智能小车 (寻迹,避障,遥控)

    目录 1 制作智能小车的硬件名单 3 引脚图 2 先让小车动起来 1 小车运动 2 代码 3 寻迹 1 工作原理 2 代码 4 超声波避障 1 工作原理 2 代码 5 蓝牙遥控 1 蓝牙工作原理 2 代码 6 oled屏幕 1 工作内容 7
  • Bootstarp入门教程(3)栅格系统

    栅格系统简介 栅格系统用于通过一系列的行 row 与列 column 的组合创建页面布局 你的内容就可以放入创建好的布局中 下面就介绍以下Bootstrap栅格系统的工作原理 行 row 必须包含在 container中 以便为其赋予合适的
  • 【最新】Java基础学习笔记(20天学会java黑马)(一)

    文章目录 Java背景 初步了解 Java快速入门 HelloWorld案例 Java基础语法 注释 数据类型 变量 关键字与标志符 类型转换 强制类型转换 运算符 算术运算符 赋值运算符 自增自减运算符 关系运算符 逻辑运算符 短路逻辑运
  • 基于Linux系统下安装Tomcat

    Tomcat服务器是一个免费开放开源的轻量级Web应用服务器 可以实现项目的部署和管理 本博客将实现Tomcat在Linux操作系统中的安装 1 检查系统中是否有java JDK 1 1 Windows系统下查看 使用 Win R键打开运行
  • eclipse中编写spring配置文件时有design和source,namespace 如何设置出来的问题

    首先要安装Spring插件 在已经装了 spring插件的情况下 右键点击你要显示的 xml文件 会出来 open with gt spring config editor 如图
  • ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch

    GeForce MX150 Python3 6 cuda 9 0 cudnn 7 tensorflow 1 12 0 按多个教程安装前后也出了很多问题 最终才安装成功 以防万一 现将过程记录如下 1 安装显卡驱动 注意 两种方法 方法一为我