Ubuntu20.04+cuda11.2+cudnn8.1+Anaconda3安装tensorflow-GPU环境,亲测可用
(1)安装nvidia显卡驱动
注意Ubuntu20.04和Ubuntu16.04版本的安装方法不同,
安装驱动前一定要更新软件列表和安装必要软件、依赖(必须)
sudo apt-get update #更新软件列表sudo apt-get install g++sudo apt-get install gccsudo apt-get install make查看GPU型号
lspci | grep -i nvidia官网下载对应驱动(必须)
https://www.nvidia.cn/Download/index.aspx?lang=cn
卸载原有驱动
sudo apt-get remove --purge nvidia*禁用nouveau(nouveau是通用的驱动程序)(必须)
sudo chmod 666 /etc/modprobe.d/blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf在最后一行下面添加以下几行语句,保存退出
Ubuntu20.04版本
blacklist nouveauoptions nouveau modeset=0Ubuntu16.04版本
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb更新文件
sudo update-initramfs -u重启(必须重启)
reboot验证nouveau是否已禁用
lsmod | grep nouveau没有信息显示,说明nouveau已被禁用,接下来可以安装nvidia的显卡驱动。
安装lightdm,lightdm是显示管理器,主要管理登录界面
sudo apt-get install lightdm
按Ctrl + Alt + F1~F6中一个进入黑漆漆的文本界面tty,我的是联想thinkpad,使用的是Ctrl + Alt +F6或者用命令sudo telinit 3
sudo service lightdm stop //关掉图形界面
sudo apt-get remove nvidia-* //卸载原有驱动
sudo chmod 755 NVIDIA-Linux-x86_64-525.85.05.run //获取权限
sudo ./NVIDIA-Linux-x86_64-525.85.05.run -no-nouveau-check -no-x-check -no-opengl-files //安装驱动/*-no-x-check 安装驱动时关闭X服务,-no-nouveau 安装驱动时禁用nouveau-no-opengl-files 只安装驱动,不安装opengl文件。根据其他答主经验,最后一个参数一定要加,否则安装完驱动会出现桌面闪退、循环登录等问题。
*/执行这一步会收到很多提示(注意:白色为选中,不是红色):
问题1:The distribution-provided pre-install script failed! Are you sure you want to continue?
Continue installation Abort installation (选择Coninue)问题2:Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a newmodule, if you install a different kernel later.
Yes No (选 No)问题3:Install NVIDIA’s 32-bit compatibility libraries?
Yes No (选 No)问题4: Installation of the kernel modulefor the NVIDIA Accelerated Graphics Driver for Linux-x86_64 (version470.94) is now complete.
OK问题5: Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.
Yes No (选 Yes)挂载Nvidia驱动:
modprobe nvidia退出文本界面到图形界面,输入sudo telinit 5或者Ctrl + Alt + F1(我的是联想thinkpad,F1和F12都试一下)
切换到图形界面:
sudo service lightdm start检查驱动是否安装成功:
nvidia-smi出现以下界面,则安装成功,可以看到此显卡驱动支持的最高CUDA版本是12.0。

(2)安装cuda
cuda版本不超过nvidia驱动查询到的cuda版本
Ubuntu 20.04默认g++9版本太高,会导致CUDA无法安装,因此要先降低g++版本到7,将下列代码逐个执行
sudo apt-get install gcc-7 g++-7sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-79
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-91sudo update-alternatives --display gcc //查看默认版本sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-79
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-91sudo update-alternatives --display g++

到nvidia官网下载cuda,网址为:https://developer.nvidia.com/cuda-toolkit-archive
我下载的是11.2
sudoshcuda_11.2.0_460.27.04_linux.run因为前面步骤已经安装了Driver
我们选择continue即可,然后出现下面这样的界面,enter一下把Driver取消

安装完成后的界面如下:

修改环境变量
sudo gedit ~/.bashrc
或
vim ~/.bashrcexport PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}更新环境变量
source ~/.bashrc检查是否安装成功
nvcc -V
#编译并测试设备 deviceQuery:cd /usr/local/cuda-9.2/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

编译并测试带宽 bandwidthTest:cd ../bandwidthTest
sudo make
./bandwidthTest
如果这两个测试的最后结果都是Result = PASS,说明CUDA安装成功啦。
(3)安装cudnn
下载和cuda相匹配的cudnn版本,我选用的是cudnn8.1,网址为:https://developer.nvidia.com/cudnn
解压tgz包
tar-xvzfcudnn-11.2-linux-x64-v8.1.0.77.tgz对解压后文件夹中的文件进行拷贝
sudo cp cuda/include/cudnn* /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*修改权限
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*查看cuDNN版本
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
如果输出如下,则表示安装成功:

(4)安装Anaconda3
进入Anaconda3下载目录,运行下面命令安装
bashAnaconda3-2022.10-Linux-x86_64.sh期间有ENTER的地方可以直接回车,遇到MORE信息,可以摁Q键跳过,遇到需要输入yes|no的地方输入yes即可。
考虑到其他用户的权限问题,最好不要安装在/root目录下,修改安装路径为/usr/local/anaconda3

输入 yes 来确认使用 conda init 来启动
启动已经修改的环境变量
source ~/.bashrc命令前出现了base
查看版本
conda --versionconda 配置国内镜像源
添加清华镜像源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/设置搜索时显示通道地址
conda config --set show_channel_urls yes恢复默认源
conda config --remove-key channels显示镜像源
conda config --show-sources删除镜像源
conda config --remove channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda 创建虚拟环境
conda create -n py39 python=3.9输入 y 并回车后,开始下载并创建
进入虚拟环境
conda activate py39退出当前环境
conda deactivate查看当前环境
conda env list删除环境
conda remove -n [your_env_name(虚拟环境名称)] --all
conda remove -n py39 --all安装ipython
conda install ipython(5)安装tensorflow-GPU
pip install tensorflow-gpu==2.6.0 -i https://pypi.mirrors.ustc.edu.cn/simple/在虚拟python环境下测试tensorflow-GPU是否安装成功
fromtensorflow.python.clientimportdevice_libdevice_lib.list_local_devices()
相关文章:
Ubuntu20.04+cuda11.2+cudnn8.1+Anaconda3安装tensorflow-GPU环境,亲测可用
(1)安装nvidia显卡驱动注意Ubuntu20.04和Ubuntu16.04版本的安装方法不同,安装驱动前一定要更新软件列表和安装必要软件、依赖(必须)sudo apt-get update #更新软件列表sudo apt-get install gsudo apt-get install gccsudo apt-get install make查看GP…...
剑指Offer 第27天 JZ75 字符流中第一个不重复的字符
字符流中第一个不重复的字符_牛客题霸_牛客网 描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符 "go" 时,第一个只出现一次的字符是 "g" 。当从该字符流中读出前六个字符 “google&…...
科研试剂供应1476737-97-9,Bis-PEG2-endo-BCN可发生点击反应
●外观以及性质:Bis-PEG2-endo-BCN一般为白色固体,BCN其为点击试剂,点击化学(Click chemistry),又译为“链接化学”、“动态组合化学” (Dynamic Combinatorial Chemistry)、“速配接…...
Zabbix 构建监控告警平台(一)--部署安装
监控对象监控收集信息方式Zabbix 部署 1.监控对象 源代码: *.html *.jsp *.php *.py 数据库: MySQL,MariaDB,Oracle,SQL Server,DB2 应用软件:Nginx,Apache,PHP,Tomcat agent 集群: LVS,Keepalived,HAproxy…...
【nodejs】nodejs入门核心知识(命令行使用、内置模块、node 模块化开发)
💻 nodejs入门核心知识(命令行使用、内置模块、node 模块化开发) 🏠专栏:JavaScript 👀个人主页:繁星学编程🍁 🧑个人简介:一个不断提高自我的平凡人🚀 🔊分享…...
5. Spring 事务
文章目录1. Spring 事务简介2. Spring 事务角色3. Spring 事务属性3.1 事务配置3.2 案例:转账业务追加日志3.3 事务传播行为1. Spring 事务简介 Spring 事务作用:在数据层或业务层保障一系列的数据库操作同成功、同失败。 数据层有事务我们可以理解&am…...
【堆】数据结构堆的实现(万字详解)
前言: 在上一期中我们讲到了树以及二叉树的基本的概念,有了之前的认识,今天我们将来具体实现一种二叉树的存储结构“堆”!!! 目录1.二叉树顺序结构介绍2.堆的概念及结构3.调整算法3.1向上调整算法3.1.1算法…...
Docker进阶 - 9. docker network 之自定义网络
1. 运行两个tomcat实例,并进入容器内部 docker run -d -p 8081:8080 --name tomcat81 billygoo/tomcat8-jdk8 docker exec -it tomcat81 bashdocker run -d -p 8082:8080 --name tomcat82 billygoo/tomcat8-idk8 docker exec -it tomcat82 bash2. ping一下各自的ip…...
springcloud-工程创建(IDEA)
文章目录介绍springcloud 常用组件1.创建父工程2.删除父工程的src目录3.修改父工程的pom文件4 springcloud 版本依赖5.创建子模块6 子项目下创建启动类介绍 Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具,它为开发中的配置管理、服务发现、断路器、智…...
Blender——物体的随机分布
问题描述将正方体随机分布在平面上。问题解决点击编辑-->偏好设置。在【插件】中的【物体】类型中勾选【Object: Scatter Objects】。右下的活动工具与工作区设置中就会出现【物体散列】的模块,可以调节各参数。选中正方体,按着Shift,选中…...
一文教你玩转 Apache Doris 分区分桶新功能
数据分片(Sharding)是分布式数据库分而治之 (Divide And Conquer) 这一设计思想的体现。过去的单机数据库在大数据量下往往面临存储和 IO 的限制,而分布式数据库则通过数据划分的规则,将数据打散分布至不同的机器或节点上…...
Spring JdbcTemplate 和 事务
JdbcTemplate概述 JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和,操作nosql数据库的RedisTemplate,操作消息…...
C/C++:程序环境和预处理/宏
程序的翻译环境和执行环境 在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境,它用于实际执行代码。 编译和链接 一份源代码(比如test.c)需要通过编译…...
什么是死锁?死锁产生的四个必要条件是啥?如何避免和预防死锁的产生?
点个关注,必回关 文章目录什么是死锁死锁产生的原因:1、系统资源的竞争2、进程运行推进顺序不当引起死锁产生死锁的四个必要条件:死锁的避免与预防什么是死锁 死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此…...
工程管理系统源码-物料管理-工程项目管理系统-建筑施工管理软件
如今建筑行业竞争激烈,内卷严重,发展趋势呈现两极分化,中小微企业的生存空间被逐步压缩,利润逐年减少。事实证明,工地上粗放式的人管人管理模式已经落于时代,劳动力纠纷和物料浪费现象尤其普遍,…...
Roboguide与TIA V16通讯
软件需求:1. roboguide;2. TIA V16;3. KEPServer; 在之前的文章中介绍过KEPServer与TIA V16的通讯,此处不再介绍。接下来,介绍roboguide与KEPServer的仿真通讯。 创建一个roboguide项目。选择【外部设备】➡【添加外部设备】 选择【OPC Server】➡【OK】 OPC服务器名称命…...
利用PyTorch深度学习框架进行多元回归
目录前言数据加载数据转换模型定义模型训练模型评估模型保存与加载完整代码讨论参考文献前言 大多数数据科学家以往经常常是利用传统的机器学习框架sklearn搭建多元回归模型,随着深度学习和强化学习越来越普及,很多数据科学家尝试使用深度学习框架来进行…...
EBS常用接口开发
整理了一些工作中常用的Oracle EBS接口和API,最早是看着大神黄建华文档起来的,格式内容参考他的文档,加上一些自己开发的程序和经历而已。 PO PO接收、检验、入库、退货-InterfaceAPI_刘文钊1的博客-CSDN博客 基础数据 EBS物料、bom、工艺导入…...
【完整】UR机械臂逆运动学求解过程及c++代码实现
有任何问题请在评论区留言,我尽可能的回复大家 一. 逆运动学的求解需要以下数学运算 利用DH参数得到每个关节的变换矩阵;利用变换矩阵求出机械臂整个链的变换矩阵;求出末端位姿;利用已知末端位姿和整个链的变换矩阵,…...
68. Python的相对路径
68. Python的相对路径 文章目录68. Python的相对路径1. 知识回顾2. 什么是相对路径3. 相对路径的语法4. 查看相对路径的方法5. 写出所有txt文件的相对路径5.1 同目录5.2 上级目录6. 用相对路径读取txt文件6.1 读取旅游.txt6.2 读取旅游经费.txt6.3 读取笔记.txt和new.txt6.4 读…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
【实施指南】Android客户端HTTPS双向认证实施指南
🔐 一、所需准备材料 证书文件(6类核心文件) 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...
高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...
