通过Windows WSL在GPU上运行tensorflow 2.12

news2025/2/21 20:05:05

背景

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

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。

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

Pycharm里配置interceptor, 找WSL。

运行代码。

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

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

相关文章

go初识iris框架(二) - get,post请求和数据格式

继初步了解iris后 文章目录 获取url路径获取数据get请求post请求获取JSON数据格式JSON返回值获取XML数据格式XML返回值 获取url路径 package mainimport "github.com/kataras/iris/v12"func main(){app : iris.New()app.Get("/hello",func(ctx iris.Conte…

旅行社优惠卡小程序软件开发

旅游业的不断发展,越来越多的旅行社开始提供各种优惠卡小程序软件,以吸引更多的游客。这些小程序软件可以为游客提供各种优惠,例如门票折扣、酒店预订折扣、旅游线路折扣等等。 开发旅行社优惠卡小程序软件需要考虑以下几个方面&#xff…

java项目之贝儿米幼儿教育管理系统(ssm+mysql+jsp)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的贝儿米幼儿教育管理系统。技术交流和部署相关看文章末尾! 开发环境: 后端: 开发语言:Java…

Ceph 分布式应用2

一、创建 CephFS 文件系统 MDS 接口 1、服务端操作 1)在管理节点创建 mds 服务 [rootadmin ceph]# cd /etc/ceph [rootadmin ceph]# ceph-deploy mds create node01 node02 node03 [ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.c…

129、仿真-基于51单片机数字万用表测电压电流电阻仿真设计(Proteus仿真+程序+参考论文+配套资料等)

方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于本次设计。STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。内部128k字节…

二、DDL-5.小结

一、数据库操作 1、查询 查询所有数据库 show databases; 查询目前所处数据库 select database(); 2、进入 进入某个数据库 use itcast; USE 数据库名; 3、创建 创建数据库 create database itcast; create database [if not exists] itcast; create database [if not …

Spring Actuator 监控管理

Spring Actuator 监控管理 Spring Actuator 是 Spring Boot 提供的一个功能强大的监控和管理端点。它提供了一系列的 HTTP 端点&#xff0c;可以用来监控应用程序的运行状态、健康状况、性能指标等信息。这些端点可以通过 HTTP 或 JMX 访问。 <dependency><groupId&g…

Java:字符串String详解(用法+例子)

目录 String字符串拼接字符串截取与数字相接不可变字符串检测字符串是否相等字符串常量池空串和null串码点与代码单元String API字符串数组构建字符串buffer机制String、StringBuilder、StringBuffer 区别 比特流、网络流、文件流 String 字符串拼接 除了基本类型都叫引用类型…

python 笔记:you-get

下载视频/音乐/图片 使用pip安装you-get pip3 install you-get 之后在命令行执行下载操作 1 主要命令行参数 -n --no-merge 如果视频分p&#xff0c;不进行合并--no-caption不下载弹幕、歌词等 -f --force 覆盖已存在的文件 -F STREAM_ID --format STREAM_ID 指定视频下载…

TypeError: issubclass() arg 1 must be a class

在使用spacy加载模型时报错&#xff0c;错误&#xff1a;TypeError: issubclass() arg 1 must be a class 解决方法 降低spacy的版本&#xff0c;我之前是3.5.3&#xff0c;降到3.5.2即可。

Monocular 3D Object Detection with Depth from Motion 论文学习

论文链接&#xff1a;Monocular 3D Object Detection with Depth from Motion 1. 解决了什么问题&#xff1f; 从单目输入感知 3D 目标对于自动驾驶非常重要&#xff0c;因为单目 3D 的成本要比多传感器的方案低许多。但单目方法很难取得令人满意的效果&#xff0c;因为单张图…

[Volo.Abp升级笔记]使用旧版Api规则替换RESTful Api以兼容老程序

Volo.Abp 配置应用层自动生成Controller&#xff0c;增删查改服务&#xff08;CrudAppService&#xff09;将会以RESTful Api的方式生成对应的接口 (官方文档)&#xff0c;这与旧版本的Abp区别很大。RESTful固然好&#xff0c;虽然项目里新的Api会逐步使用RESTful Api代替旧的&…

JavaScript运算符

减法运算符 在JavaScript中&#xff0c;我们可以使用简单的减法来计算一下你的出生年龄&#xff0c;例如&#xff1a; const zhangSan 2023 - 2000; console.log(zhangSan);● 当然&#xff0c;我们也可以在控制台中&#xff0c;一次性传入多个值&#xff1b; const zhangS…

测试模型中理解压力测试和负载测试

压力测试 对应的性能测试模式就是固定线程&#xff0c;通过使用固定线程的模式对服务进行性能测试&#xff0c;或者使用阶梯型的线程递增模式进行性能测试。 通过控制线程数来进行不同场景的测试。 关注指标&#xff1a;处理能力&#xff08;QPS或者说TPS&#xff09;&#…

matplotlib绘制点线图

代码&#xff1a; import numpy as np import matplotlib.pyplot as pltX, Y (np.linspace(-3, 3, 100),np.linspace(-3, 3, 100))U, V np.mgrid[-3:3:100j, 0:0:100j]seed_points np.array([[-2, 0, 1], [-2, 0, 1]])fig0, ax0 plt.subplots() strm ax0.streamplot(X, Y…

阿里云GPU服务器价格表(A100、A10、V100、T4)

阿里云GPU服务器租用费用表包括包年包月、一个小时收费以及学生GPU服务器租用费用&#xff0c;阿里云GPU计算卡包括NVIDIA V100计算卡、T4计算卡、A10计算卡和A100计算卡&#xff0c;GPU云服务器gn6i可享受3折&#xff0c;阿里云百科分享阿里云GPU服务器租用表、GPU一个小时多少…

Java集合类都有哪些?

Collection 是所有单列集合的父类 Map 是所有双列集合的父类&#xff0c;一次添加一对元素 单列集合 上图中&#xff0c;蓝色是实现类&#xff0c;红色是接口 Collection 下面分为两种单列集合 -- List 、 Set List 集合 List 下又分为三种 -- ArrayList 、 LinkList 、 …

react的state和useState你了解多少?带你深入react state useState

state和useState是react中很重要的概念&#xff0c;虽然笔者一直在用&#xff0c;但是总感觉有些地方认识不够透彻。于是乎&#xff0c;笔者重新阅读学习了react官方文档&#xff0c;感觉受益匪浅。希望能用尽量通俗简洁的语言把吸收的知识表述清楚&#xff0c;便写下此文。 如…

二、DDL-3.数据类型

分为3种&#xff1a;数值类型、字符串类型、日期时间类型。 一、数值类型 【案例】 年龄&#xff1a; age TINYINT UNSIGNED——范围&#xff08;0&#xff0c;255&#xff09;够用 分数&#xff1a;score double(4,1)——分数0-100有小数&#xff0c;4—最高位数&#xff0…

学习开闭原则的方法:成为编程高手的秘诀

成为一名优秀的编程高手&#xff0c;掌握开闭原则是至关重要的。开闭原则是软件设计中的核心概念之一&#xff0c;它能够帮助我们构建可扩展、可维护的代码&#xff0c;提升自身的编程水平。在本文中&#xff0c;我们将分享学习开闭原则的方法&#xff0c;揭示成为编程高手的秘…