怎么在Windows WSL上利用GPU运行tensorflow 2.12

news2024/11/30 15:25:42

背景

1. 在window上安装WSL

2. 再WSL上安装miniconda。

3. 创建conda环境

4. 设置GPU

5.  安装tensorflow 2.12

6. 在Pycharm里运行你的GPU Tensorflow 2.12代码


背景

从tensorflow 2.10开始,已经没有tensorflow-gpu相应的版本在Window GPU运行了,只能通过在window上安装WSL2,在wsl2里运行tensorflow的方式调用GPU.当然你也可以回退到老的tensorflow-gpu的版本,不过你如果要用新的tensorflow只能通过WSL2。本文是给你展示怎么在window上调用GPU来运行tensorflow2.12。

如果tensorflow的版本是2.10之前的,可以参考博客.

1. 在window上安装WSL

开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 Windows Subsystem for Linux (WSL) 允许开发人员安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等)并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,无需修改,无需任何修改。 传统虚拟机或双引导设置的开销。

前提条件

您必须运行 Windows 10 版本 2004 及更高版本(Build 19041 及更高版本)或 Windows 11 才能使用这些命令

安装 WSL 命令


现在,您可以使用单个命令安装运行 WSL 所需的所有内容。 右键单击并选择“以管理员身份运行”,以管理员模式打开 PowerShell 或 Windows 命令提示符,输入 wsl --install 命令,然后重新启动计算机。

wsl --install

如果不能执行可以用wsl.exe --install

 好了,重启完我们继续。

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

如果有下面问题,可以进入BIOS, 改一下就可以了。

之后运行下面命令

 

完了之后你在菜单栏里就会发现Ubuntu。点击打开。

创建用户名和密码

 参考资料: https://learn.microsoft.com/en-us/windows/wsl/install

2. 再WSL上安装miniconda。

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

3. 创建conda环境

创建一个虚拟环境,我的名字是tf2.12

conda create --name tf2.12 python=3.9

 

执行 conda activate tf2.12 进入虚拟环境。

4. 设置GPU

安装nvidia gpu driver

运行下面命令验证你有没有装nvidia gpu driver, 如果没有,你可以download并安装。https://www.nvidia.com/download/index.aspx?lang=en-us

  1. nvidia-smi

安装cuda toolkit 

conda install -c conda-forge cudatoolkit=11.8.0

安装cuDNN cull

pip install nvidia-cudnn-cu11==8.6.0.163

如果比较慢,可以用下面命令

pip install nvidia-cudnn-cu11==8.6.0.163 -i https://pypi.tuna.tsinghua.edu.cn/simple

 配置系统路径。 激活 conda 环境后,每次启动新终端时,都可以使用以下命令来执行此操作。

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

5.  安装tensorflow 2.12

安装tensorflow 2.12版本

pip install tensorflow==2.12

执行下面代码验证tesnroflow可以跑在GPU上。

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

如果返回 GPU 设备列表,则表明您已成功安装 TensorFlow。

如果你想要运行window目录下的某个python文件,可以在目录的地址前加/mnt/

例如你要的目录地址是/c/apps/PycharmProjects/

你可以运行下面命令到你这个目录

cd /mnt/c/apps/PycharmProjects/

6. 在Pycharm里运行你的GPU Tensorflow 2.12代码

Pycharm加一下新的nterceptor, 找On WSL。

 点击Next 

选你之前创建的虚拟环境,我的是tf2.12。点击Create

然后运行的测试代码。

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

运行结果

2023-07-18 21:57:44.195176: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:982] could not open file to read NUMA node: /sys/bus/pci/devices/0000:2d:00.0/numa_node
Your kernel may have been built without NUMA support.
2023-07-18 21:57:44.195233: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:982] could not open file to read NUMA node: /sys/bus/pci/devices/0000:2d:00.0/numa_node
Your kernel may have been built without NUMA support.
Num GPUs Available:  1

参考资料:https://www.tensorflow.org/install/pip

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

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

相关文章

LCD—STM32液晶显示(1.显示器简介及LCD显示原理)(6000字详细介绍)

目录 显示器简介 液晶显示器 液晶 像素 液晶屏缺点 LED显示器 OLED显示器 显示器的基本参数 STM32板载液晶控制原理(不带微控制器) 液晶控制原理 控制信号线(不带液晶控制器) 液晶数据传输时序 显存 总结 3.2寸液晶屏介绍(搭载…

在线乞讨系统 Docker一键部署

begger乞讨网 在线乞讨 全球要饭系统前端界面后端界面H2 数据库 console运行命令访问信息支付平台 在线乞讨 全球要饭系统 在线乞讨全球要饭项目,支持docker一键部署,支持企业微信通知,支持文案编辑 前端界面 后端界面 H2 数据库 console 运行命令 项…

【STM32】使用HAL库对ULN2003控制28BYJ-48步进电机

步进电机是将电脉冲信号转变为角位移或线位移,通过控制施加在电机线圈上的电脉冲顺序、频率和数量,可以控制步进电机的转向、速度和旋转角度。 配合以直线运动执行机构(螺纹丝杆)或齿轮箱装置,更可以实现更加复杂、精密的线性运动控制要求。…

(Linux)查看jar包内容

查看jar包内容cp /opt/services/找到jar路径cp project.jar project2.jar复制jar,防止操作失误unzip -xvf project2.jar查看内容unzip -xvf project2.jar | grep jackson搜索相应内容rm -rf project2.jar删除副本 压缩jar包参考jar -cvf project.jar a.class b.clas…

3.10 Bootstrap 标签

文章目录 Bootstrap 标签标签 Bootstrap 标签 下面将讲解 Bootstrap 标签。标签可用于计数、提示或页面上其他的标记显示。使用 class .label 来显示标签&#xff0c;如下面的实例所示&#xff1a; <span class"label label-default">Label</span></…

期刊佳文 | 长江流域水系统生态服务价值评价方法

原文信息 题目&#xff1a;长江流域水系统生态服务价值评价方法 作者&#xff1a;郑阳 于福亮 桑学锋 张思琦 李子恒 期刊&#xff1a;《中国水利水电科学研究院学报&#xff08;中英文&#xff09;》23年3期 摘要 为完善人类活动影响下的生态系统评价体系、实现对生态关键…

【深度学习】了解残差网 ResNet 和 ResNeXt 的架构

一、说明 了解和实现 ResNet 和 ResNeXt 的架构以实现最先进的图像分类&#xff1a;从Microsoft到 Facebook [第 1 部分]&#xff0c;在这篇由两部分组成的博客文章中&#xff0c;我们将探讨残差网络。更具体地说&#xff0c;我们将讨论Microsoft研究和Facebook AI研究发布的三…

Unity URP 2D光照导入与配置

上面随时间变化的火烧云和晚霞&#xff0c;篝火的呼吸光照&#xff0c;都是URP的功劳。 1.什么是URP&#xff1f; URP 全称为 Universal Render Pipeline(通用渲染管线)。 它的特点是在手游和端游均能在保持性能的同时有良好的效果 也就说在多数情况下&#xff0c;在下面的平台…

java swing jxpanel嵌入链接url

如何嵌入url 尝试了很多方式&#xff0c;有jdic&#xff0c;webBrowser都不太行&#xff0c;可能有的是因为开发环境欠缺一些条件&#xff0c;最后使用了JXPanel嵌入网页url的方式&#xff0c;成功了。 需要的条件 jar包 &#xff1a;jdk1.8或以上即可&#xff0c;不用额外的…

c语言修炼第三章--结构体

目录 前言 3.1结构体的含义以及语法 3.1.1结构体含义 3.1.2结构体语法形式 3.1.2结构体变量的创建和初始化 3.2结构体成员的类型 3.3结构体的成员访问 3.3.1.操作符 3.3.2->操作符 3.4结构体传参 前言 小伙伴们大家好&#xff01;欢迎继续和菜菜酱学习c语言呐&…

Python零基础入门(八)——字典与集合

系列文章目录 个人简介&#xff1a;机电专业在读研究生&#xff0c;CSDN内容合伙人&#xff0c;博主个人首页 Python入门专栏&#xff1a;《Python入门》欢迎阅读&#xff0c;一起进步&#xff01;&#x1f31f;&#x1f31f;&#x1f31f; 码字不易&#xff0c;如果觉得文章不…

zookeeper伪分布式安装

1、环境准备 需要有jdk1.8 2、安装 &#xff08;1&#xff09;将zookeeper的安装包上传到/opt/modules目录下 &#xff08;2&#xff09;解压 [rootdatacollection modules]# tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/installs/&#xff08;3&#xff09;更名…

nacos配置管理模型

nacos配置管理模型 Nacos&#xff08;全称为"Naming and Configuration Service"&#xff09;是阿里巴巴开源的一款用于实现服务发现、动态配置和服务管理的产品。它提供了面向微服务架构的注册中心、配置中心和命名服务&#xff0c;并以高可用性、可扩展性和容错性…

SQL Server 存储过程入门

SQL Server 存储过程入门 1.存储过程的定义&#xff1a;2.存储过程的作用与好处&#xff1a;3.存储过程的基本语法&#xff1a;&#xff08;1&#xff09;创建&#xff08;2&#xff09;使用 4.存储过程的3个示例&#xff1a;&#xff08;1&#xff09;创建一个Contact表的名为…

6.6Jmeter远程调度Linux机器Jmeter测试

1、配置Agent和启动 1.1、打开jmeter/bin目录下的jmeter.properties 1、server_port1099取消注释 2、remote_hosts127.0.0.1 改为remote_hosts127.0.0.1:1099 或者是remote_hostsAgent机的ip:1099 3、server.rmi.localport1099 4、server.rmi.ssl.disablefalse改为true&#x…

MySQL5.7升为8.0新指南

MySQL5.7升为8.0新指南 一、效果图 俗话说的好&#xff1a;有图有真相 升级前 升级后 二、核心思路 以官方教程为主&#xff0c;各种博文为辅&#xff0c;实践出真知 官方教程网址&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/windows-upgrading.html 重点内容重…

微信小程序——字符串截取

indexOf() &#xff1a; 判断一个字符是否在字符串 中 存在&#xff0c;如果存在返回该元素或字符第一次出现 的 位置 的 索引&#xff0c;不存在返回-1。 lastIndexOf() &#xff1a; 返回一个指定的字符串值最后出现的位置&#xff0c;在一个字符串中的指定位置从后向前搜索。…

Go语言之文件操作,读写文件,其他文件操作

编码 ASCII表 众所周知&#xff0c;计算机起源于美国&#xff0c;英文只有26个字符&#xff0c;算上其他所有特殊符号也不会超过128个。字节是计算机的基本储存单位&#xff0c;一个字节(bytes)包括八个比特位(bit),能够表示出256个二进制数字&#xff0c;所以美国人在这里只是…

大语言模型:从应用到产出;百度网盘推出AI的图搜功能

&#x1f989; AI新闻 &#x1f680; 百度网盘推出基于AI的高级图搜功能&#xff0c;提供更精确、全面的搜索结果 摘要&#xff1a;百度网盘近日推出了一项名为“高级图搜”的AI功能。通过基于向量的语义搜索&#xff0c;该功能可以理解时间、地点、人物、事件等组合搜索语句…

LeetCode 热题 100(二):滑动窗口。3. 无重复字符的最长子串、 438.找到字符串中所有字母异位词

滑动窗口例题&#xff1a; 一、3. 无重复字符的最长子串 题目要求&#xff1a;就是说找到包含不同字母最长的串。 思路&#xff1a;可以想到使用set去重&#xff0c;同时应用滑动窗口。本质上还是双指针法&#xff0c;l是窗口左边界 r是窗口右边界。 如果set包含了当前字母就…