当前位置: 首页 > news >正文

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=0

Ubuntu16.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 ~/.bashrc
export 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 --version

conda 配置国内镜像源

添加清华镜像源

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 的限制,而分布式数据库则通过数据划分的规则,将数据打散分布至不同的机器或节点上&#xf…...

Spring JdbcTemplate 和 事务

JdbcTemplate概述 JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和,操作nosql数据库的RedisTemplate,操作消息…...

C/C++:程序环境和预处理/宏

程序的翻译环境和执行环境 在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境,它用于实际执行代码。 编译和链接 一份源代码(比如test.c)需要通过编译&#xf…...

什么是死锁?死锁产生的四个必要条件是啥?如何避免和预防死锁的产生?

点个关注,必回关 文章目录什么是死锁死锁产生的原因: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 读…...

vscode里如何用git

打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

EtherNet/IP转DeviceNet协议网关详解

一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...