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

tensorflow GPU训练环境布置

tensorflow GPU训练环境布置

  • 一、显卡驱动安装
    • 1.1 如何处理**Failed to initialize NVML: Driver/library version mismatch的问题**
    • 1.2 卸载旧的版本
    • 1.3 驱动安装
      • 1.3.1 利用apt 安装
      • 1.3.2 手动安装
  • 二、安装CUDA
    • 2.1 确定CUDA版本
    • 2.2 下载文件
      • 1. 找匹配版本
      • 2. 选合适的平台
    • 2.3 安装文件
    • 2.4 验证
      • 2.4.1 下载cuda samples
      • 2.4.2 编译
  • 3.安装 cudnn
    • 3.1 选择版本
    • 3.2 下载
    • 3.3 安装
    • 3.4 验证
  • 4.tensorflow测试
  • 5 大功告成!!!!!!!!!!!!!!!!!!!!!!!!

一、显卡驱动安装

1.1 如何处理Failed to initialize NVML: Driver/library version mismatch的问题

运行如下命令:

nvidia-smi

在服务器上,刚开始测试的时候,驱动的时候,会报如下错误:

Failed to initialize NVML: Driver/library version mismatch

根据网上方法,尝试了各种:如重启、配置环境变量、卸载重新安装等。都没有起作用。根本原因在于:

我的服务器虚拟的,而且我无法控制宿主机

此时,需要查看是那两个版本不匹配:

dmseg |tail -n 10 #后面这个数字可以根据机器上的错误消息的大小进行调整。我在写这篇文章的时候,由于错误已经被处理了,消息内容很难找,我直接加到1000了

会显示如下的内容:

可以看到,我的当前版本内核中的驱动版是525.85.12,而运行在用户太的版是525.105.17

此时,网上有说直接让自动装,需要看当前最新的安装版本是不是与内核版一致。如果不一致,则需要将内核中的卸载掉。而我这个服务器是利用宿主直通的。所以没法卸载。我怀疑是宿主机的版本与内核的一致。而我无法修改宿主机的。所以只能让我能安装的部分与内核保持一致。

1.2 卸载旧的版本

卸载可以使用如下命令:

sudo apt purge nvidia*

卸载后,可以查看当前 apt支持的驱动版本是什么?

1.3 驱动安装

1.3.1 利用apt 安装

如果与你的内核一致或你能控制内核的版本,则可以直接安装,请跳到下节,安装CUDA部分

如果不一致。那么请继续往下看,阅读完本节。

查看可安装版本:

sudo apt list |grep nvidia-driver*

显示内容如下:

在最新的更新中,并没有我需要的版本,其中最后的一行,

在确定无法利用apt` 安装的情况下,可以利用下面的方法来找合适的驱动版本。

1.3.2 手动安装

驱动查找地址:地址

下载完成之后,使用dpkg 进行安装:

 sudo dpkg -i nvidia-driver-local-repo-ubuntu1804-525.85.12_1.0-1_amd64.deb

提示信息如下:

sudo cp /var/nvidia-driver-local-repo-ubuntu1804-525.85.12/nvidia-driver-local-CDA22FB5-keyring.gpg /usr/share/keyrings/
sudo apt update

此时,在apt中还看不到其更新信息,需要在 `/etc/apt/source.list.d/ `下面添加一个list文件:

再进行更新,就会看到以下信息:

sudo apt udpate

查找驱动:

 sudo apt list |grep nvidia-driver

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BfjSQNkx-1683716939458)(https://pic2.imgdb.cn/item/645b6c9c0d2dde57778772ba.jpg)]

可以看到,在上图中,出现了想要安装的驱动。可以直接手动安装:

sudo apt install nvidia-driver-525 # 或者
sudo apt install nvidia-driver-local-repo-ubuntu1804-525.85.12

安装完成后,就不要再更新了,如果升级了,会导致开始进的问题。

此时,驱动已经安装完成了。

nvidia-smi

二、安装CUDA

2.1 确定CUDA版本

安装的CUDA要tensorflow能支持的版本。这一点很重要。如果你安装最新或最高支持的版本,但tensorflow不支持,也没啥用。

可以在以下的地址查看支持信息:地址

部分截图如下:

可以看见:最新版本的tensorflow-2.12.0也就最高支持11.8,所以即使你安装了cuda12.0也没法利用。

2.2 下载文件

下载地址

1. 找匹配版本

2. 选合适的平台

2.3 安装文件

利用给出的命令直接安装。如果之前安装过,就直接清理。

sudo apt purge cuda*

2.4 验证

2.4.1 下载cuda samples

地址

wget https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v11.8.tar.gz
tar -zxvf v11.8.tar.gz
cd Samples/1_Utilities/deviceQuery/
ls

2.4.2 编译

make
./deviceQuery

3.安装 cudnn

3.1 选择版本

同cuda,选择tensorflow支持的版本:8.6

3.2 下载

地址

需要注册一下,注册后,下载页面如下:

3.3 安装

下载完成后,直接利用dpkg进行安装

 sudo dpkg -i cudnn-local-repo-ubuntu1804-8.9.1.23_1.0-1_amd64.deb

这个会自动提示复制签名信息的,我已经安装过了,所以不再提示了。操作如下:

sudo cp /var/cuda-repo-ubuntu1804-11-8-local/cuda-7D65C20C-keyring.gpg /usr/share/keyrings/

更新:

sudo apt update

这三个挨个安装。

3.4 验证

cp -r  /usr/src/cudnn_samples_v8 ~/src/
cd src/cudnn_samples_v8/mnistCUDNN/
make
./mnistCUDNN

上面只是部分截图信息,如果能运行,环境基本部署成功了。

4.tensorflow测试

import tensorflow as tf 
tf.test.is_gpu_available()

5 大功告成!!!!!!!!!!!!!!!!!!!!!!!!

相关文章:

tensorflow GPU训练环境布置

tensorflow GPU训练环境布置 一、显卡驱动安装1.1 如何处理**Failed to initialize NVML: Driver/library version mismatch的问题**1.2 卸载旧的版本1.3 驱动安装 1.3.1 利用apt 安装1.3.2 手动安装 二、安装CUDA2.1 确定CUDA版本2.2 下载文件1. 找匹配版本2. 选合适的平台 2…...

理解和使用Java中的枚举

枚举是一种特殊的数据类型,用于定义一组具名的常量。Java中的枚举类型可以包含多个枚举常量,每个常量都具有唯一的名称和值。本文将详细介绍Java中的枚举,包括为什么要使用枚举、枚举的好处、如何定义和使用枚举等。 为什么要使用枚举&#…...

C++和Java:哪种语言更适合你

C和Java:哪种语言更适合你 一、引言1 背景介绍2 问题阐述3 目的和意义 二、C与Java的介绍1 C的特点和优缺点2 Java的特点和优缺点3 两种语言的比较4 选择C的理由4.1 适合底层开发的特点4.2高效的编译器和运行速度4.3 自由且灵活的语言风格4.4 良好的内存管理能力 5 …...

FE_Vue学习笔记 框架的执行流程详解

1 分析脚手架结构 (1)CLI就是 command line interface 的缩写。Vue CLI官网:Vue CLI (2)安装过程: (PS: 提前安装过node.js了,没有安装的可以打开这个:Downl…...

KingbaseES V8R6 等待事件之LWLock Buffer_IO

等待事件含义 当进程同时尝试访问相同页面时,等待其他进程完成其输入/输出(I/O)操作时,会发生LWLock:BufferIO等待事件。其目的是将同一页读取到共享缓冲区中。 每个共享缓冲区都有一个与LWLock:BufferIO等待事件相关联的I/O锁,每次都必须在共…...

桂院导航小程序 静态项目 二次开发教程

Gitee代码仓库:桂院导航小程序 先 假装 大伙都成功安装了静态项目,并能在 微信开发者工具 和 手机 上正确运行。 接着就是 将项目 改成自己的学校。 代码里的注释我就不说明了,有提到 我的学校 的文字都改成你自己的就行 1. 全局 app.json…...

即时通讯APP开发费用成本多少?

移动互联网的发展,为人们的通讯交流提供了非常多的便利,一些即时通讯APP的出现,将人与人的距离再一次缩短。通过即时通讯APP软件,人们可以随时随地了解身边发生的新鲜事物,以及和朋友探讨各类趣事,甚至可以…...

女生学大数据好找工作么

好不好找工作和性别无关,无论你是男生还是女生,找工作的时候首先要看的都是学历,然后是个人能力,其中还有一定的面试经验和简历加分项~ 不要自己先把这个性别限定死,你有能力都能找到工作,不满足企业要求都…...

02-mysql升级篇(rpm方式+压缩包升级)

文章目录 升级方式一、二进制方式安装1、下载mysql-5.7.42安装包(mysql-5.7.37升级mysql-5.7.42)2、备份数据库、my.cnf文件,停止mysql服务(重要)3、查看当前数据库版本3、上传 mysql-5.7.42-1.el7.x86_64.rpm-bundle.…...

【Java零基础入门篇】第 ④ 期 - 继承(三)

【Java零基础入门篇】第 ④ 期 - 继承(三) 博主:命运之光专栏:Java零基础入门 学习目标 1.掌握继承性的主要作用、实现、使用限制; 2.掌握this和super的含义及其用法; 3.掌握方法覆写的操作; 4.…...

Python Selenium搭建UI自动化测试框架

自动化测试是软件测试中非常重要的一部分,可以提高测试效率和测试覆盖率。在UI自动化测试中,Selenium是非常流行的工具。本文将介绍如何使用Python和Selenium搭建UI自动化测试框架。 一、环境准备 在开始搭建UI自动化测试框架之前,需要先安装…...

开发大语言模型需要数据?算法?算力?

开发大语言模型的关键是什么。最近看到不少文章为了流量,甚至连 5G 通讯都说成了是开发大语言模型的关键 其实从前面的原理介绍,不难看出,大语言模型的其中一个关键点是数据。 关键一:数据​ 训练数据主要是所谓的语料库。今天的很多语言模型的语料库主要有以下几种: …...

CSS选择器的常见用法

目录 1、CSS编写方式 2.CSS选择器 1.标签选择器 2.类选择器 3.id选择器 4.后代选择器 3.CSS属性 CSS叫做"层叠样式表",作用就是装饰网页.类似于我们平时所说的化妆。 字体、大小、间距、颜色、位置、边框、背景等等统称为样式,用来描述一个网页。 …...

Oracle EBS修改密码

FNDCPASS修改密码 用户名必须出现在FND_USER或FND_ORACLE_USERID表中。FNDCPASS实用程序和ALLRACLE功能是为应用程序用户/模式设计的。 对于FND_USER或FND_ORACLE_USERID中不存在的用户,可以使用alter命令更改密码。 查询用户是否存在FND_USER或FND_ORACLE_USERI…...

《花雕学AI》33:如何用XMind制作AI思维导图、鱼骨图和组织结构图

思维导图是一种有效的思维工具,它可以帮助我们整理信息,激发创意,提高效率。思维导图是一种以中心主题为核心,以分支结构为形式,以关键词和图像为内容的图形表示法。它可以让我们一目了然地看到知识的层次和逻辑&#…...

【rust】| 06——语言特性 | 所有权

系列文章目录 【rust】| 00——开发环境搭建 【rust】| 01——编译并运行第一个rust程序 【rust】| 02——语法基础 | 变量(不可变?)和常量 【rust】| 03——语法基础 | 数据类型 【rust】| 04——语法基础 | 函数 【rust】| 05——语法基础 | 流程控制 【rust】| 06——语言特…...

AUTOSAR入门

简介 AUTOSAR(AUTomotive Open System ARchitecture)是一种汽车软件架构标准,由德国大陆、博世、宝马等汽车及零部件制造商共同发起,拥有广泛的行业参与。其目标是为了解决汽车电子和软件系统日益复杂的问题,提高可重…...

运维高可用架构的 6 大常规方案

在介绍高可用架构的方案之前,先说一下什么是高可用架构,高可用架构应具备但不限于以下特征: 主从切换 很好理解,当其中一台机器的服务宕机后,对于服务调用者来说,能够迅速的切换到其他可用服务,…...

Java设计模式-桥接模式

简介 桥接模式(Bridge Pattern)是一种结构性设计模式,它的主要作用是将抽象部分和实现部分解耦,使它们可以独立变化而不会互相影响。桥接模式最早由GoF(Gang of Four)提出,在《设计模式》一书中…...

计及N-k安全约束的含光热电站电力系统优化调度模型【IEEE14节点、118节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

node.js的初步学习

那什么是node.js呢&#xff1f; 和JavaScript又是什么关系呢&#xff1f; node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说&#xff0c; 需要在node.js的环境上进行当JavaScript作为前端开发语言来说&#xff0c;需要在浏览器的环境上进行 Node.js 可…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式

pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图&#xff0c;如果边框加在dom上面&#xff0c;pdf-lib导出svg的时候并不会导出边框&#xff0c;所以只能在echarts图上面加边框 grid的边框是在图里…...

内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献

Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译&#xff1a; ### 胃肠道癌症的发病率呈上升趋势&#xff0c;且有年轻化倾向&#xff08;Bray等人&#xff0c;2018&#x…...