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

别再折腾双系统了!Win11/Win10下用WSL2搞定PyTorch+CUDA环境(附YOLOv5实战)

在Windows上打造高效深度学习环境WSL2PyTorchCUDA全攻略对于许多刚接触深度学习的开发者来说环境配置往往是最令人头疼的第一步。传统做法要么是在Windows和Linux双系统间来回切换要么忍受虚拟机性能低下的问题。而现在WSL2Windows Subsystem for Linux 2的出现彻底改变了这一局面——它让我们能在Windows系统中获得接近原生Linux的性能体验同时完美支持GPU加速。本文将带你一步步搭建PyTorchCUDA环境并最终运行YOLOv5目标检测模型整个过程无需离开熟悉的Windows环境。1. 为什么选择WSL2而非双系统在深度学习领域Linux系统长期占据主导地位这导致许多工具和框架对Windows的支持相对滞后。传统解决方案主要有三种双系统安装启动时需要选择操作系统无法同时使用两个系统虚拟机方案性能损耗严重GPU加速支持有限纯Windows环境部分工具链不完善兼容性问题多WSL2完美解决了这些痛点方案性能易用性GPU支持资源占用双系统高低完整独立分配虚拟机低中有限高WSL2接近原生高完整动态共享WSL2的核心优势在于直接调用Windows已安装的NVIDIA驱动无需在Linux中重复安装文件系统性能大幅提升接近原生Linux与Windows系统无缝集成可同时使用两边的工具内存和CPU资源动态分配利用率更高提示WSL2要求Windows 10版本2004或更高建议使用Windows 11以获得最佳体验2. 基础环境配置2.1 启用WSL2功能首先需要确保系统满足最低要求Windows 10 2004及以上或Windows 1164位系统支持虚拟化的CPU以管理员身份打开PowerShell执行以下命令# 启用WSL功能 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 启用虚拟机平台 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 设置WSL2为默认版本 wsl --set-default-version 2 # 重启计算机使更改生效安装完成后从Microsoft Store下载Ubuntu 20.04 LTS。首次启动时会完成初始化设置需要创建Linux用户名和密码。2.2 配置GPU支持WSL2最强大的特性之一是能够直接使用Windows端的NVIDIA驱动。这意味着只需在Windows中安装最新驱动WSL2会自动继承这些驱动能力无需在Linux中重复安装驱动验证驱动是否正常工作# 在WSL2终端中执行 nvidia-smi正常输出应显示GPU信息和驱动版本。如果遇到问题可以尝试# 更新软件源 sudo apt update sudo apt upgrade -y # 安装基础工具 sudo apt install -y build-essential3. CUDA与PyTorch环境搭建3.1 CUDA Toolkit安装WSL2支持完整的CUDA加速但需要注意版本兼容性。目前推荐使用CUDA 11.x系列# 添加NVIDIA仓库密钥 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 # 下载并安装CUDA wget https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda-repo-wsl-ubuntu-11-7-local_11.7.1-1_amd64.deb sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.1-1_amd64.deb sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-7-local/7fa2af80.pub sudo apt-get update sudo apt-get -y install cuda安装完成后配置环境变量echo export PATH/usr/local/cuda-11.7/bin:$PATH ~/.bashrc echo export LD_LIBRARY_PATH/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH ~/.bashrc source ~/.bashrc验证安装nvcc --version3.2 cuDNN安装cuDNN是NVIDIA提供的深度学习加速库安装过程如下从NVIDIA官网下载对应CUDA 11.7的cuDNN包需要注册账号将下载的压缩包复制到WSL2中解压并复制文件tar -xzvf cudnn-11.7-linux-x64-v8.5.0.96.tgz sudo cp cuda/include/cudnn*.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod ar /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*3.3 PyTorch安装PyTorch官方提供了多种安装方式。考虑到国内网络环境推荐使用清华镜像源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ conda install pytorch torchvision torchaudio cudatoolkit11.7 -c pytorch验证PyTorch是否能识别GPUimport torch print(torch.cuda.is_available()) # 应输出True print(torch.rand(5,3).cuda()) # 应输出GPU上的张量4. YOLOv5实战演练4.1 准备YOLOv5环境git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt安装过程中常见问题及解决方案下载速度慢使用国内镜像源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple权限问题在命令前加sudo或使用--user参数4.2 运行目标检测YOLOv5提供了预训练模型可以快速体验目标检测import torch # 加载模型 model torch.hub.load(ultralytics/yolov5, yolov5s, pretrainedTrue) # 检测图片 img https://ultralytics.com/images/zidane.jpg results model(img) # 显示结果 results.print() results.show()对于自定义训练需要准备数据集并修改配置文件。典型目录结构yolov5/ ├── data/ │ └── custom.yaml # 数据集配置文件 ├── models/ │ └── custom.yaml # 模型配置文件 └── train.py # 训练脚本4.3 性能优化技巧启用半精度训练model model.half() # 转换为半精度使用更大的batch sizepython train.py --batch 64多GPU训练python train.py --device 0,1 # 使用GPU 0和1注意WSL2的内存是动态分配的如果遇到内存不足的问题可以在%USERPROFILE%下创建.wslconfig文件内容为[wsl2] memory16GB # 根据实际情况调整 swap8GB5. 开发环境高级配置5.1 VS Code集成VS Code的Remote - WSL扩展可以完美支持WSL2开发在Windows端安装VS Code和Remote - WSL扩展在WSL终端中输入code .即可在当前目录启动VS Code所有开发环境包括Python解释器都会自动切换到WSL中5.2 文件系统交互WSL2与Windows的文件系统是互通的在Windows资源管理器地址栏输入\\wsl$可访问WSL文件在WSL中/mnt/c对应Windows的C盘5.3 常见问题排查CUDA不可用确认Windows端驱动已更新检查WSL2中nvidia-smi输出是否正常验证PyTorch版本与CUDA版本匹配性能不佳确保使用WSL2而非WSL1wsl -l -v查看检查是否启用了GPU加速torch.cuda.is_available()考虑禁用Windows Defender实时保护内存不足调整.wslconfig中的内存限制减少训练时的batch size使用更小的模型变体如yolov5s在实际项目中我发现WSL2的性能表现已经非常接近原生Linux特别是在RTX 30系列显卡上训练速度差异通常在5%以内。最方便的是能够直接在Windows中使用各种工具如PowerBI、Tableau处理数据然后在WSL2中训练模型真正实现了两全其美。

相关文章:

别再折腾双系统了!Win11/Win10下用WSL2搞定PyTorch+CUDA环境(附YOLOv5实战)

在Windows上打造高效深度学习环境:WSL2PyTorchCUDA全攻略 对于许多刚接触深度学习的开发者来说,环境配置往往是最令人头疼的第一步。传统做法要么是在Windows和Linux双系统间来回切换,要么忍受虚拟机性能低下的问题。而现在,WSL2&…...

终极指南:如何在Windows电脑上实现AirPlay 2无线投屏功能

终极指南:如何在Windows电脑上实现AirPlay 2无线投屏功能 【免费下载链接】airplay2-win Airplay2 for windows 项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win 还在为Windows电脑无法接收iPhone、iPad或Mac的屏幕镜像而烦恼吗?Airpl…...

基于I2C总线与ATtiny85的RGB LCD时钟:在5个GPIO上实现多设备驱动

1. 项目概述:当微型控制器遇上彩色显示屏几年前,我在为一个智能花盆项目寻找显示方案时遇到了一个经典难题:手头的Adafruit Trinket(基于ATtiny85)只有5个可用GPIO,而一个能显示温湿度、时间的16x2字符LCD屏…...

抖音无水印下载终极指南:3分钟搞定批量下载的完整教程

抖音无水印下载终极指南:3分钟搞定批量下载的完整教程 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppo…...

【Nanobot】README09_LEVEL4 添加新聊天渠道

【Nanobot】README09_LEVEL4 添加新聊天渠道 源码地址:https://github.com/HKUDS/nanobot 🎯 目标 指导如何为 nanobot 添加新的聊天渠道(如 Signal、Matrix、Line 等)。 📋 添加新 Channel 的步骤 步骤 1&#xff1…...

在 WSL 中下载安装 MySQL,连接到 SQLyog(MySQL 安装在 WSL vs Windows 本地对比)

本文详细介绍了在Linux系统中检查MySQL服务状态的方法,包括使用ps -ef | grep mysql命令和排除grep进程的优化版本。 同时提供了MySQL安装验证和WSL环境下的配置指南,重点解决SQLyog连接WSL中MySQL的问题。 关键步骤包括:修改MySQL配置文件中…...

窗口尺寸自由掌控:SRWE如何让任意程序窗口随心所欲

窗口尺寸自由掌控:SRWE如何让任意程序窗口随心所欲 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾为某个应用程序的固定窗口尺寸感到束手无策?想在高分辨率下截图却受限于游戏设…...

无线门铃、车库遥控与物联网:聊聊OOK(2ASK)调制那些老技术的新应用

无线门铃、车库遥控与物联网:聊聊OOK(2ASK)调制那些老技术的新应用 在智能家居和物联网设备大行其道的今天,一种诞生于上世纪中期的通信技术——OOK(On-Off Keying)调制,依然活跃在无线门铃、车…...

解锁AI编程新体验:开源助手完整配置指南

解锁AI编程新体验:开源助手完整配置指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial request li…...

GCC __builtin函数避坑指南:让你的跨平台C代码在ARM和x86上都跑得稳

GCC __builtin函数跨平台避坑实战:ARM与x86兼容性深度解析 在嵌入式开发与高性能计算领域,GCC编译器的__builtin函数集一直是开发者提升性能的利器。但当代码需要同时运行在ARM架构的嵌入式设备和x86架构的服务器上时,这些看似美妙的"魔…...

【紧急预警】传统文献管理正被淘汰!农科院最新评估:未集成NotebookLM的课题组结题延迟平均达4.8个月

更多请点击: https://codechina.net 第一章:NotebookLM农业科学研究的范式革命 传统农业科研长期依赖人工文献综述、田间数据手工录入与孤立模型验证,知识整合效率低、跨尺度分析能力弱。NotebookLM 以“文档即计算单元”的设计理念切入&…...

PerimeterX PX3/PX2 按压验证码逆向:从初始化到WASM关键校验的完整流程剖析

1. PerimeterX按压验证码技术背景解析 第一次遇到PerimeterX的PX3/PX2按压验证码时,我正帮朋友调试一个电商爬虫。那会儿鼠标按下去死活过不了验证,控制台里全是看不懂的加密参数。这种验证码和传统图形验证码完全不同,它更像一个完整的安全防…...

【电影研究者的AI护城河】:NotebookLM深度定制教程——仅限高校影视实验室内部流传的6大高阶技巧

更多请点击: https://codechina.net 第一章:NotebookLM电影研究辅助的底层逻辑与范式迁移 NotebookLM 并非传统意义上的“AI笔记工具”,而是一个以语义理解为核心、以用户自有资料为知识边界的可验证推理引擎。其在电影研究领域的应用&#…...

IR 召回评测基准(英文数据集)——MS MARCO 实战指南

1. MS MARCO数据集全景解读 第一次接触MS MARCO时,我和大多数开发者一样困惑:这个号称"信息检索领域ImageNet"的数据集到底强在哪里?经过三个实际项目的验证,我发现它的价值在于完美复现了真实搜索场景的复杂性。想象你…...

为什么92%的团队在2026年前仓促重构AI栈?——主流框架弃用预警、许可证变更清单与平滑迁移路线图

更多请点击: https://intelliparadigm.com 第一章:2026年AI工具栈搭建完整指南 构建面向生产环境的AI工具栈,需兼顾前沿性、稳定性与可扩展性。2026年主流实践已从单点模型调用转向模块化、可观测、可编排的智能工作流基础设施。以下为推荐技…...

终极ASI加载器:Windows游戏修改的完整解决方案

终极ASI加载器:Windows游戏修改的完整解决方案 【免费下载链接】Ultimate-ASI-Loader The Ultimate ASI Loader is a proxy DLL that loads custom .asi libraries into any game process. 项目地址: https://gitcode.com/gh_mirrors/ul/Ultimate-ASI-Loader …...

基于NUC980开发板的嵌入式国学唐诗学习机全栈开发实践

1. 项目概述:当嵌入式开发板遇上国学经典最近在捣鼓一块NUC980开发板,具体型号是NK-980IoT。这板子性能不错,接口也丰富,但总感觉拿它跑个简单的网络服务或者做个数据采集有点“大材小用”。正好家里小朋友开始背唐诗,…...

单卡训练mmsegmentation模型?先把这个SyncBN改成BN(附完整配置文件修改指南)

单卡训练mmsegmentation模型?先解决SyncBN这个关键配置 当你第一次在个人电脑或实验室的单一GPU设备上运行mmsegmentation训练脚本时,屏幕上突然弹出的SyncBN相关错误信息可能会让兴奋的心情瞬间跌入谷底。这个看似简单的配置问题,实际上反映…...

WinForm上位机实战:5分钟用C#连接西门子PLC(Modbus TCP,含仿真环境搭建)

WinForm上位机实战:5分钟用C#连接西门子PLC(Modbus TCP,含仿真环境搭建) 工业自动化领域中,上位机与PLC的通信是核心技术之一。本文将带您快速实现一个基于C# WinForm的西门子PLC监控系统,全程采用Modbus T…...

3步实现微信聊天记录永久备份:WeChatExporter完整解决方案

3步实现微信聊天记录永久备份:WeChatExporter完整解决方案 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因手机丢失或系统更新而永远丢失珍贵的微信…...

Ubuntu 18.04.6 从零到一:新手避坑与高效配置实战指南

1. 为什么选择Ubuntu 18.04.6? Ubuntu 18.04.6是长期支持版本(LTS)的最终更新,特别适合需要稳定系统的用户。相比最新版本,它的软件生态更成熟,社区支持更完善。我实测发现,这个版本对老硬件兼容…...

基于ARM嵌入式平台与AI视觉的输电线路智能巡检系统设计与实现

1. 项目概述:输电线路巡检的智能化转型 输电线路作为电力系统的“大动脉”,其安全稳定运行至关重要。传统的线路巡检主要依赖人工,巡检人员需要跋山涉水,通过望远镜、红外测温仪等设备进行观测和记录。这种方式不仅劳动强度大、效…...

CVAT 实战指南:从界面布局到高效标注全解析

1. CVAT初识:为什么选择这个标注工具? 第一次接触CVAT时,我正为一个自动驾驶项目寻找合适的标注工具。试过市面上七八款工具后,CVAT的开源免费特性立刻吸引了我——这对预算有限的小团队简直是救命稻草。更惊喜的是,它…...

英特尔马来西亚六厂布局:先进封装如何重塑半导体制造与供应链

1. 项目概述:从一则新闻到半导体制造的全球拼图前几天,行业里不少朋友都在转一条消息,说英特尔在马来西亚的封装产能布局又有新动作,计划要搞到六座工厂的规模。乍一看,这好像就是个普通的海外建厂新闻,但如…...

SecureCRT 9.1.0不止是安装:揭秘高级功能如会话日志、脚本自动化与安全配置最佳实践

SecureCRT 9.1.0高阶实战:从会话审计到自动化运维的全栈指南 SecureCRT早已超越基础终端工具的范畴,成为运维工程师手中的瑞士军刀。当大多数教程还在反复讲解安装步骤时,真正的高阶用户已经在用会话日志构建操作审计体系,通过脚本…...

LabVIEW通过OPC DA连接任意PLC:架构、配置与实战指南

1. 项目概述:为什么是LabVIEWOPC? 如果你在工业自动化、测试测量或者数据采集领域摸爬滚打过一阵子,大概率听过LabVIEW的大名,也可能被各种PLC(可编程逻辑控制器)五花八门的通讯协议搞得头疼。把LabVIEW和任…...

高效跨平台网盘直链解析工具:5步配置实战指南

高效跨平台网盘直链解析工具:5步配置实战指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...

免费开源AMD Ryzen处理器调试工具:SMUDebugTool终极指南

免费开源AMD Ryzen处理器调试工具:SMUDebugTool终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://…...

晶晨T972嵌入式主板开发指南:从硬件选型到量产部署

1. 项目概述:一颗“芯”引发的性价比革命 最近在嵌入式开发圈和智能硬件圈里,一个消息传得挺火:亮钻推出了一款基于晶晨T972平台的高性价比主板。对于很多正在寻找稳定、高性能且成本可控的解决方案的开发者、产品经理和创客来说,…...

C++ 列表初始化容器

initializer_list是一个模板类&#xff0c;可能你已经用过它了但不知道而已&#xff0c;比如下面的代码就用了 #include <iostream> #include <vector>int main() {std::vector<int> vc({ 1,2,3,4 }); //这里调用了构造函数&#xff0c;实参为{1,2,3,4}ret…...