TensorFlow GPU不可用,WSL2安装

news2025/1/8 16:28:57

这个帖子写给23年刚买电脑、系统是win11,tensorflow版本是2.10以上的兄弟们。不符合的可以去看其他答案了。

这是以我三天来的安装经历来写的,希望能给后来的兄弟们减少时间的浪费。

win11,安装的tensorflow的版本都是2.12的,但是从2.10开始tensorflow就不支持gpu了,这点在英文版的安装页面里有

而中文版是没有这个提示的,估计也是很多人试了很多遍,检查了很多次环境变量都解决不了为什么就是不能调用gpu的原因。此时我们只能通过wsl2的方式来安装了,这是在windows里运行了一个虚拟机环境

 想要去官网看的点链接,记得改成英文

不想去的可以接着看,我一步步记录。

1、安装WSL

进到https://learn.microsoft.com/zh-cn/windows/wsl/install安装WSL2,

wsl --install

显示这个就是安装完成,此时重启电脑。

好了,重启完我们继续。

提示:上述命令默认安装ubuntu,不想用的可以按照下面图片里的进行更改

 2、设置 Linux 用户信息

安装了linux,就开始设置

官方给了链接:https://learn.microsoft.com/zh-cn/windows/wsl/setup/environment#set-up-your-linux-username-and-password

可以WIN+S搜ubuntu,也可以在安装应用里找到

 进入显示

官网这样说:

根据提示,输入passwd,进行密码设置,输入时不会显示,

 接下来升级更新

 3、设置 Windows Terminal

win+s输入cmd打开终端

边上有个向下的箭头,打开,点设置,然后在启动里的默认终端应用程序选择windows终端

 也不知道设置这啥用,先设置吧

4、检查正在运行的WSL版本

 输入:

wsl -l -v

显示:

 这里就WSL安装完成了

5、英伟达CUDA相关安装

官网链接:

NVIDIA GPU Accelerated Computing on WSL 2

这里我们直接开始安装

 进入:Official Drivers | NVIDIA

 

CUDA这里大家应该都安装过了,没有安装的,就点链接进去安装就好了

 这里我们已经安装过了。

 注意:CUDA是安装win11的,但工具包也就是CUDA Toolkit要安装linux的,

sudo apt-key del 7fa2af80

这行代码应该是之前安装过Linux的,我输入没有结果,报了个warning

我就没管,继续下一步,下载Ubuntu-WSL专属的工具包

 链接:CUDA Toolkit 12.1 Downloads | NVIDIA Developer

 

进去就选好了

 下载代码,一步步来吧。

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

 (1)cmd进入终端,输入wsl.exe,进入Linux

输入:

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin

(2) 输入

sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb

等待下载完成

输入

sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb

输入

sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update

 

输入

sudo apt-get -y install cuda

一大堆下载安装

 到这里CUDA工具包就安装好了。

这里是说没有用WSL-Ubuntu软件包安装Toolkit 的要参考的。

6、安装Miniconda

 我们接着上面的继续在ubuntu里输入

curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

可能需要重新启动终端或 source ~/.bashrc 以启用 conda 命令。 使用conda -V 测试是否安装成功。

7、创建conda环境

 在刚才进的conda环境输入

conda create --name tf python=3.9

又开始下载安装一堆东西

 按照提示,我们输入

conda activate tf

来激活刚才创建的tf环境,接下来的东西要在环境激活的条件下才能完成。

8、设置GPU

 激活环境,并查看是否安装了GPU驱动

conda activate tf
nvidia-smi

 这里又安装了一下cudatoolkit,不知道为啥,不管了,安吧

conda install -c conda-forge cudatoolkit=11.8.0

得,上一次的下载安装又来一次

接着安装cudnn,pip安装换个源吧,快一点,我习惯用豆瓣源了,也可以换其他源pycharm通过pip下载一直不成功的解决方法_pycharm包下载不了_坠星不坠的博客-CSDN博客

pip install nvidia-cudnn-cu11==8.6.0.163 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

 

安装完之后是配置环境

CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib

上面这个每进一次就要配置一次,接下来是自动配置,下面两句是一行,不要复制成两行了

mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh

9、安装 TensorFlow

注意:不要使用 conda 安装 TensorFlow。 它可能没有最新的稳定版本。 推荐使用 pip,因为 TensorFlow 仅正式发布到 PyPI。

 

所以接下来安装tensorflow就用cmd就行了,也是换个源吧

pip install --upgrade pip
pip install tensorflow==2.12.0

10、验证是否成功

 验证cpu

python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

验证gpu

python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

显示,gpu显示空,我估计是失败了,继续找为什么。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425119.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(二)Cmd Markdown 编辑阅读器的使用效果 | 以 Cmd Markdown 编辑阅读器为例

Cmd Markdown 编辑阅读器使用指南 (一)Cmd Markdown 编辑阅读器的使用示例 | 以 Cmd Markdown 编辑阅读器为例(二)Cmd Markdown 编辑阅读器的使用效果 | 以 Cmd Markdown 编辑阅读器为例 在 Cmd Markdown 编辑阅读器( …

C语言实现Allan方差计算

Allan方差专有概念解释 1.量化噪声 量化噪声是一切量化操作所固有的噪声,只要进行数字量化编码采样,传感器输出的理想值与量化值之间就必然会存在微小的差别,量化噪声代表了传感器检测的最小分辨率水平。 2.角度随机游走 角度随机游走是宽带角速率白噪声积分的结果,即陀螺…

金三银四,大伙冲刺,SpringCloud 的 25 个面试考点

今天给大家分享SpringCloud高频面试题。 Spring Cloud核心知识总结 下面是一张Spring Cloud核心组件关系图: 从这张图中,其实我们是可以获取很多信息的,希望大家细细品尝。 话不多说,我们直接开始 Spring Cloud 连环炮。 连环炮…

直播协议:RTSP、RTP、RTCP、RTMP、HLS

流媒体传输一般采用HTTP/TCP(RTCP)协议来传输控制信息,而用UDP(RTP)协议来传输实时媒体数据(TCP开销相对较大,所以不太适合传输实时数据)。 流媒体传输一般都是采用建立在UDP协议上的RTP/RTSP等实时传输协议。为何要在UDP而不在T…

Spring事务:事务的基础 以及使用

目录 GTP前言 一、关于事务 1.事务的四大特性ACID 2.脏读、不可重复读、幻读 ① 脏读 ② 不可重复读 ③ 幻读 3.事务的隔离级别 4.事务的传播机制 ① Propagation.REQUIRED 默认 ② Propagation.SUPPORTS ③ Propagation.MANDATORY ④ Propagation.REQUIRES_NEW ⑤…

APK一键注入网络验证后台PHP源码ThinkPHP开发版

APK一键注入网络验证后台PHP源码ThinkPHP开发版 APK一键注入网络验证后台PHP源码ThinkPHP开发版 源码: https://url11.ctfile.com/d/25976711-55383299-827d49?p6724 (访问密码:6724) 修复 已去除登录提示到期问题。 功能简介 - 无注…

庄懂的TA笔记(十三)<特效-混合模式:四种主要透明通道用法 AC,AB,AD,自定义混合>

庄懂的TA笔记(十三)<特效-混合模式:四种主要透明通道用法 AC,AB,AD,自定义混合> 效果展示: 正文: 一、特效类大纲: 1、特效 透 2、特效 动 3、特效 映 二、特效:AC:透…

学习 Python 之 Pygame 开发魂斗罗(十三)

学习 Python 之 Pygame 开发魂斗罗(十三)继续编写魂斗罗1. 创建敌人2类2. 编写敌人2类的draw()函数3. 编写敌人越界消失函数4. 编写敌人开火函数5. 把敌人2加入地图进行测试继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗(十…

英特尔CEO基辛格:开创可持续计算新时代

近日,帕特基辛格作为英特尔CEO后,第一次来华访问。在2023英特尔可持续发展高峰论坛上,笔者有幸聆听他的演讲。他严谨又不乏幽默地给我们分享了英特尔如何践行可持续发展的思考和举措。 基辛格表示,身处科技行业,我们不…

Jetson Nano驱动机器人的左右两路电机

基于Jetson Nano板子搭建一个无人车,少不了减速电机驱动轮子滚动,那如何驱动呢?从Jetson.GPIO库文件来说,里面没有支持产生PWM的引脚,也就意味着Jetson nano没有硬件产生PWM的能力,所以我们不得不使用别的方…

容器的崛起——Docker与K8s的相爱相杀

容器的崛起 对于K8s启用docker,作为普通开发者的体感是,k8s不就是docker的集群操作吗?k8s弃用docker就像鱼反对水一样不可思议,那么这两个技术究竟是什么关系,Kubernetes 是如何一步步与 Docker 解耦的,请…

k8s学习-CKS真题-Runtime设置gVisor

目录题目环境搭建解题参考题目 该 cluster 使用 containerd 作为 CRI 运行时。containerd 的默认运行时处理程序是 runc。 containerd 已准备好支持额外的运行时处理程序 runsc (gVisor)。 Task 使用名为 runsc 的现有运行时处理程序,创建一个名为 untrusted 的 Ru…

MIPI D-PHYv2.5笔记(20) -- High-Speed Data-Clock Timing

PHY是在Forward Direction中的源同步接口(source synchronous interface)。无论是处于Forward还是Reverse信号模式,只能有一个时钟源。在Reverve Direction中,时钟是在Forward Direction中被发送的。 图1 Conceptual D-PHY Data a…

本地目录映射到公网访问

1 环境搭建 1.1 nodejs安装 首先是安装nodejs,下载地址:https://nodejs.org/zh-cn/download 选择windows exe版本直接下载。 解压可以得到如下文件: 然后添加环境变量保证在任意终端可以直接使用命令。 当然也可以直接下载msi文件进行安装…

AD8226ARZ-R7-ASEMI代理亚德诺AD8226ARZ-R7车规级芯片

编辑-Z AD8226ARZ-R7芯片参数: 型号:AD8226ARZ-R7 输入电压噪声:22 nV/√Hz 输出电压噪声:120 nV/√Hz 电流噪声:100 fA/√Hz 输入偏移:200μV 输出偏移:1000μV 输入偏置电流&#xff…

得物 API一站式协作平台的一些思考

1.背景 Mooncake是得物API一站式协作平台。从2022年3月份开始负责Mooncake,到现在已经一年了,回顾这一年,Mooncake大的阶段上,总共经历过两个版本: 1、Mooncake 1.0: 面向前端和客户端的mock平台,主要解决接口调用者…

PHP实现以函数的方式计算阶乘,使用函数输入数值逆序输出的两个代码程序

目录 前言 一、实现以函数的方式计算阶乘 1.1运行流程(思想) 1.2代码段 1.3运行截图 二、使用函数输入3个数求和,并以表单形式输出 2.1运行流程(思想) 2.2代码段 2.3运行截图 前言 1.因多重原因,…

项目沟通管理流程的6大规范步骤

1、建立沟通计划 需要对整个项目的沟通对象、沟通内容、沟通频率、沟通方法等各方面,进行计划和安排。尤其需明确沟通机制,建立完整的沟通计划。并根据项目沟通的具体情况,实时添加和修订计划,以保证沟通管理计划的持续适用性。 项…

电脑重装了系统开不了机怎么办?

我们的电脑办公用久后也会出现故障问题,例如卡顿反应慢等等,这时候就要进行重装系统了,但是很多小伙伴重装系统后会出现开不了机的问题,其实我们比较常见的也就是电脑重装系统开不了机的情况。有很多小伙伴反映自己不知道应该怎么…

阿里架构师惨遭“人员优化”,离职只留下一份Java面试进阶手册!!

前几天,一个认识了好几年在大厂工作的程序员朋友,年近30了,却被大厂以“人员优化”的名义无情被辞,据他说,有一个月散伙饭都吃了好几顿…… 在很多企业,都有KPI考核,然后在此基础上还会弄个“末…