尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Windows笔记本Pytorch CPU版安装指南:从零到跑通
折腾了大半天总算在一台完全没有独立显卡的Windows笔记本上把Pytorch CPU版装好了。整个过程说难不难但中间确实踩了好几个坑比如pip下载慢到怀疑人生、import时报DLL load failed、差点装错成GPU版本等等。这篇就把我第一周装环境的全过程写下来从零开始一步步拆解包括为什么要装CPU版、Python环境怎么准备、pip源怎么换、装完怎么验证以及我实际遇到的那些问题是怎么解决的。文章面向的是完全零基础、刚想开始学Pytorch的朋友尤其是手头设备没有NVIDIA独立显卡的情况。你只要跟着操作大概率一个小时之内能把环境跑通。1. 第一周的任务拆解先搞定环境再谈跑模型很多人学深度学习的第一步不是买书、不是看论文而是装环境。但恰恰是这一步能把一大半人劝退。我见过不少同学兴致勃勃打开教程结果在安装Pytorch这一关卡了一整天最后心态崩了直接放弃。所以这系列文章的第一周我把它定位成“环境周”——目标只有一个让你在一台普通的Windows电脑上把Pytorch CPU版成功装好、跑通并且清楚自己到底装了什么、为什么这么装。1.1 为什么第一周不是“先啃理论”我见过两种学习路线一种是先把机器学习理论啃两个月再回头装环境另一种是先把环境跑通再带着问题补理论。我个人的体会是后者对大多数人更友好。原因很简单深度学习本身是实践驱动的学科你只有亲手把一个张量算出来、把一次反向传播跑通才能真正理解那些概念在干什么。否则你看了十遍“梯度下降”也不知道它到底长什么样。所以第一周的目标非常具体装好Pytorch跑通一个最简单的张量运算demo感受一下“定义张量、做运算、自动求导”这条最基本的工作链路。这就像学做饭第一周不是先背菜谱而是先把锅碗瓢盆准备好做一道最简单的西红柿炒蛋。你不需要一开始就搞懂所有原理但你要先尝到“自己做出来一道菜”的成就感。1.2 这套系列后面的规划既然标题写了“第一周”后面肯定还有第二周、第三周这里简单交代一下整体的节奏第二周会重点讲张量的各种操作和自动求导机制第三周用Pytorch手动搭一个简单的线性回归模型理解模型训练的全流程第四周进入神经网络用卷积神经网络跑一遍手写数字识别。这个路线不求大而全核心是让你每一步都能跑出东西来保持正反馈。哪怕你现在目标很高远比如以后要跑大语言模型、做目标检测前面的地基也是一样的。环境装不好后面什么模型都跑不起来。所以说第一周这个看似简单的“安装任务”其实是整个系列里最不该跳过、也最值得认真对待的一步。2. 为什么要装CPU版家用车和跑车的选择这里得先搞清楚一个基本概念Pytorch有CPU版和GPU版之分。很多新手在搜索引擎里一搜“Pytorch安装”出来的教程基本都是GPU版步骤里又是装CUDA、又是配cuDNN还没开始跑模型就先被环境搞崩溃了。其实你不用急着上GPU尤其是对于刚入门的阶段CPU版完全够用。2.1 CPU版和GPU版到底差多少先说结论在“学习入门”这件事上CPU版和GPU版的差距没有想象中那么大。我用生活里的例子来解释CPU版有点像开一辆家用车去市区办事GPU版则是开跑车跑赛道。家用车虽然跑不出跑车的速度但在市区里正常行驶完全没问题。跑模型也是这个道理你拿CPU版跑一个MNIST手写数字识别就是深度学习里的“Hello World”训练一轮大概需要几十秒到两三分钟跟GPU版也就慢个几倍对于学习来说完全能接受。但如果你要去跑大语言模型或者训练一个几亿参数的ResNet那CPU版就真的会等到人崩溃。所以你需要评估一下自己的场景如果你只是想入门、跑跑经典的小模型、验证代码逻辑CPU版绝对够如果你已经有明确的计划要训练较大规模的模型那确实应该考虑GPU。这个判断很重要因为它决定了你接下来要折腾多少东西。2.2 没有N卡也能学深度学习很多人的电脑是办公本、轻薄本没有NVIDIA独立显卡。这时候装GPU版根本就是不可能的因为GPU版底层依赖CUDA而CUDA基本只认NVIDIA的显卡。如果你强行去装GPU版大概率会卡在“CUDA不可用”这类报错上然后又花半天时间去查怎么解决最后发现硬件根本不支持纯属浪费感情。CPU版就不一样了它对硬件几乎没有任何苛刻要求只要你的电脑能装Python就能跑Pytorch。这其实是Python系深度学习框架一个非常友好的地方。我用的一台旧笔记本内存只有8GBCPU也是好几年前的了照样把Pytorch CPU版跑得很顺畅。所以如果你手头只有普通电脑完全不用焦虑先把环境搞定、把基础模型跑通以后有条件了再换设备、切GPU版迁移成本也不高。3. 动手之前的准备先把Python环境和虚拟环境弄明白在正式安装Pytorch之前还有两件事要做分别是装Python和创建虚拟环境。很多新手最容易忽略的就是虚拟环境这一环总觉得“直接装到系统里不就行了”结果项目一大各种包之间的版本冲突能让人怀疑人生。我强烈建议从第一天开始就养成用虚拟环境的习惯哪怕你只学Pytorch一个东西。3.1 Python版本怎么选先检查你的电脑有没有装Python以及装的是什么版本。打开命令行输入python --version如果显示的是Python 3.8到3.11之间的版本基本都是可以的。我个人建议用Python 3.9或者3.10这两个版本在Pytorch的兼容性测试里是最稳的各种依赖包也基本都有预编译好的轮子。如果你还没装Python我建议直接去Python官网下载对应版本安装的时候记得勾选“Add Python to PATH”这一步很多人会漏掉后果就是你装完了在命令行里输入python根本找不到命令。这里还有一个细节现在的Pytorch新版对Python 3.12也能适配了但部分配套的第三方库可能还没完全跟上所以我不会推荐一个纯新手去追最新版本。用稳定版本对初学者是正确选择。3.2 创建虚拟环境给你的项目一个独立的房间虚拟环境的作用就是给你的每个项目做一个独立的“小房间”房间里的包互相不干扰。比如你在项目A里用Pytorch 2.0在项目B里用Pytorch 1.13两个版本可以共存因为它们在各自的环境里互不覆盖。创建虚拟环境的工具主要有两种Python自带的venv还有数据科学圈常用的conda。对于纯CPU学习场景我建议直接用venv就够用了。conda本身也是一套完整的Python发行版装起来相对重一些而且对初学者来说完全没必要在环境管理上面投入太多精力学的越复杂就越容易出错。具体操作如下# 先在你喜欢的位置建个工作目录然后进去 mkdir pytorch_learning cd pytorch_learning # 创建虚拟环境 python -m venv pytorch_env # 激活虚拟环境Windows系统 pytorch_env\Scripts\activate激活之后命令行前面会出现一个(pytorch_env)的提示符这就说明你当前已经在虚拟环境里了。没装过虚拟环境的人可能觉得这步多余但实际体验过几次版本冲突之后你就会明白这个小习惯能帮你省下多少麻烦。4. 安装Pytorch的全流程实操从命令到跑通环境准备就绪之后终于到了主角登场的时候。这一节我会把整个安装过程完整走一遍包括pip镜像源的配置、具体安装命令、以及安装完成后的版本确认。这里最关键的点是国内网络环境下直接使用默认pip源下载Pytorch会非常慢所以换源是必须的一步。4.1 先给pip换个国内源不做这一步你会崩溃Pytorch本身是个体积不小的库安装包有好几个GB的“潜力”因为里面自带了Intel数学核心库等一堆依赖就算只装CPU版下载量也有几百MB到1GB不等。如果你用的默认pip源在国外下载速度可能只有几十KB每秒眼睁睁看着进度条龟速爬行那滋味真的不好受。换源的办法很简单一种是在命令行手动指定源地址要么可以在用户目录下创建一个pip配置文件永久生效。推荐直接用配置文件的方式一劳永逸pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple这样设完之后以后所有pip安装都会从清华源拉取速度直接起飞。我实测下来同样的包在默认源可能要等十分钟换源之后一两分钟就能下完。4.2 核心安装命令CPU版到底怎么装接下来就是整个安装过程的主角了。很多人以为装CPU版要去Pytorch官网找什么特殊命令其实没那么复杂。在激活了虚拟环境的前提下直接执行pip install torch torchvision torchaudio这里需要说明一下在国内镜像源下这条命令安装的通常就是CPU版因为国内源基本同步的是CPU wheel包。如果你的电脑没有NVIDIA显卡那这就是最直接的CPU版安装方式。那如果你电脑是有NVIDIA显卡的但你想装CPU版呢这种情况也不少见比如显卡太老、驱动不匹配、或者你暂时不想折腾CUDA。你可以在pip安装时指定Pytorch的CPU专用源pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu这个地址是Pytorch官方专门发CPU版本wheel包的地方里面不会有GPU版。安装完成后你可以用一行命令确认自己装的是什么版本python -c import torch; print(torch.__version__)正常应该会输出类似2.5.1cpu这样的版本号那个cpu后缀就是你装对了的标志。4.3 如果pip下载中途失败了怎么办安装过程中最常见的意外就是网络抖动导致下载中断进度条卡住不动或者报了个“Read timed out”。遇到这种情况不用慌有两种办法。第一种是给pip加长超时时间再重新跑一次pip install torch torchvision torchaudio --timeout 60第二种更稳妥的办法是把安装包先下载到本地再离线安装。你可以用带--download-only参数把wheel包全部先拉下来然后切换目录用pip install安装本地文件。这个方法在网速特别不稳、反复中断的时候非常管用虽然多了一步操作但至少能保证安装能顺利进行下去。5. 验证安装与环境畅通别急着跑大模型装完Pytorch之后很多新手会急着去找一个神经网络代码来跑我觉得先别急。这个阶段更重要的是“验证环境可用”并且亲手体验一下Pytorch最基本的操作逻辑。这样就算后面遇到问题你也能确认到底是代码问题还是环境问题。5.1 三行命令确认Pytorch能用安装完成后第一件事是验证环境是否正常。打开命令行依次输入下面的命令python -c import torch; print(torch.__version__) python -c import torch; print(torch.cuda.is_available())第一条命令如果输出了版本号说明Pytorch已经被正确导入了。第二条命令会输出一个False很多人看到这个False就慌了以为哪里没装对其实不是。因为你是CPU版没有CUDA所以torch.cuda.is_available()返回False才是正常的。这就好比家用车仪表盘上没有氮气加速按钮——你根本不需要它显示有反而才是问题。如果你是在虚拟环境里跑这几条命令还有一个额外的细节值得注意你可以用pip list看看当前环境里到底装了哪些包确认torch、torchvision、torchaudio都在列表里顺便看看它们的版本号是否匹配。后面如果出现奇怪的报错这个列表是你排查问题的第一现场。5.2 用一个小demo感受张量和自动求导验证完环境之后我建议你亲手敲一遍下面的代码这是Pytorch最核心的两个概念张量和自动求导。import torch # 创建一个张量 x torch.tensor([2.0, 3.0, 4.0], requires_gradTrue) print(x , x) # 做一个简单运算 y x * x * 2 print(y , y) # 对其中一个元素求梯度 y.sum().backward() print(x的梯度 , x.grad)这段代码里最核心的是requires_gradTrue和.backward()。第一行告诉Pytorch这个张量后面可能需要计算梯度做运算得到y之后调用backward()就能自动算出y对x的梯度。你不需要自己手动推导数深度学习所需的“链式法则”框架已经帮你算完了。第一次看到梯度被算出来的那一刻你会对这个框架产生一种最直观的信任感“哦原来它真的能自己求导”。这一段代码建议你多敲几遍哪怕暂时不理解细节也没关系。你只需要记住这个模式先定义张量再定义运算然后反向传播求梯度。以后所有模型的训练本质上都是这个模式的无限循环。6. 这一周最容易踩的坑安装过程中的现场复盘这一部分是我写这篇博文的重头戏。装Pytorch本身步骤不多但新手遇到的报错花样百出很多坑我当时也挨个踩过一遍。下面把这一周我自己遇到的、以及群里朋友遇到的典型问题都整理出来给你做一份“避坑地图”。6.1 常见问题速查表问题现象可能原因解决办法pip下载慢、反复超时默认源在国外配置清华源或加--timeout 60import torch 报 DLL load failed缺少微软VC运行库安装最新版“Microsoft Visual C Redistributable”torchvision 无法导入版本与 torch 不匹配用pip install torch版本号 torchvision匹配版本重新对齐装了 GPU 版却无法使用没有N卡或CUDA环境用CPU专用源重新安装CPU版命令行找不到 python 命令安装时没勾选“Add to PATH”重装Python并勾选或手动添加环境变量跑模型时内存爆满/蓝屏数据集或模型太大降低batch size或先用小模型小数据测试这个表里的每一个问题在安装过程中都有可能出现而且第一个和第二个是我实际遇到次数最多的。下面挑两个最关键的问题展开讲一下。6.2 两个值得单独展开的典型问题第一个是import torch时报 DLL load failed。这个报错看起来特别吓人英文一长串但实际上原因很简单大概率是你的Windows系统缺少了某个运行库。深度学习框架底层用了C编译的代码如果Windows缺少微软的VC运行库就会在导入时报“找不到指定模块”之类的错误。解决办法也很直接去微软官网搜“Visual C Redistributable”下载最新的x64版本安装上重启命令行问题就消失了。第二个问题是 torch 和 torchvision 版本不匹配。如果你不是用pip install torch torchvision torchaudio这一条命令一起装的而是分次安装那就有可能装到两个不匹配的版本。torchvision 的导入依赖 torch 的版本差得太远就会报错。解决办法是打开Pytorch官网找到“Previous Versions”页面里面有一个版本匹配表格照着表格重新安装对应版本就行。用一条命令同时安装三个包是最省心的办法可以让pip自动帮你解决依赖关系。6.3 安装过程中容易被忽略的两个小习惯第一个小习惯是安装完成后不要急着开Jupyter。很多教程会让你装Jupyter但Jupyter本身需要穿过虚拟环境去调内核如果没配置好你明明在虚拟环境里装了Pytorch打开Jupyter却import不到又是一轮新的折腾。我第一周建议你把上面的demo先在命令行里跑通跑通了之后再考虑要不要用Jupyter。第二个小习惯是安装过程中尽量把命令都复制别手动输入。原因很简单Pytorch相关的包名、版本号、URL都容易打错一个字符的误差就可能让你装上完全不同的东西。我见过有人手动输错了一个字母把torchvision装成了torchvision的拼写错误版本后面排查了半天才发现是安装时写错了。技术上没有难度但很消磨耐心。7. 第一周收尾的个人感受与下一步做法环境装好、demo跑通之后你就已经正式迈进了Pytorch的大门第一周的任务到这里算真正完成了。接下来我建议你花点时间做一个小练习进一步把“张量自动求导”这个链路印到脑子里。这里给你一个具体的可操作任务用Pytorch实现一个简单的线性回归用随机数据拟合一条直线打印出训练过程中loss的变化。import torch # 生成一些随机数据y 3x 1加一点噪声 x torch.randn(100, 1) y_true 3 * x 1 0.1 * torch.randn(100, 1) # 初始化参数w 和 b w torch.randn(1, requires_gradTrue) b torch.zeros(1, requires_gradTrue) # 手动写一个训练循环 learning_rate 0.01 for epoch in range(200): y_pred w * x b loss ((y_pred - y_true) ** 2).mean() loss.backward() with torch.no_grad(): w - learning_rate * w.grad b - learning_rate * b.grad w.grad.zero_() b.grad.zero_() if epoch % 20 0: print(f第 {epoch} 轮loss {loss.item():.6f}) print(f拟合结果w {w.item():.3f}, b {b.item():.3f})这个练习建议你自己手打一遍先试运行然后再试着改改动比如换一下学习率、换一下数据量、看看训练结果怎么变化。你可能会有疑问比如为什么最后要调用w.grad.zero_()这是为了把上一次计算出来的梯度清零否则Pytorch会默认把梯度累加起来导致结果不对。这种细节一开始理解不了很正常等你跑完两三遍之后就会慢慢形成感觉。最后再分享一个我自己的心得Pytorch入门最关键的一步其实就是“第一周把环境搞定然后亲手跑通几个代码”。这个阶段不求弄懂每个原理只求“跑得起来”和“有手感”。很多教程把重点放在理论上但真正能让新手坚持下去的其实是那种“代码在我手里跑通了”的踏实感。环境装好了眼前的路就打开了多跑几遍很多概念也就不那么神秘了。第一周剩下的时间你完全可以把上面的线性回归练习反复跑几次为下一周进入更系统的张量操作打好底子。
RELATED

相关推荐

双节锂电池主动均衡方案:MP2642GR-Z与PIC18LF47K40协同设计

双节锂电池主动均衡方案:MP2642GR-Z与PIC18LF47K40协同设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/16 5:21:40
Elasticsearch 指标聚合详解:cardinality、stats、percentiles 与 string_stats

Elasticsearch 指标聚合详解:cardinality、stats、percentiles 与 string_stats

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/16 5:21:40
MP2642GR-Z与ATmega6450协同实现高可靠电池均衡

MP2642GR-Z与ATmega6450协同实现高可靠电池均衡

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/16 5:21:40
MORE NEWS

更多资讯

📰

Flink算子链深度解析:原理、调优与实战避坑指南

1. 算子链到底解决了什么问题第一次接触 Flink 的算子链(Operator Chaining)机制,是在一个实时计算任务里。当时任务逻辑并不复杂,从数据源读取、做一次 map 清洗、再 filter 掉无效记录、最后 keyBy 后做窗口聚合输出。但打开 Fl…

📰

技术参考资源整理指南:从分层筛选到知识库搭建

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

揭秘 vm2api 0 提示词注入机制:为什么不用再篡改 System 提示词

【免费下载链接】vm2api vm2api 使用虚拟机完全拟真方案的订阅转api 项目地址: https://gitcode.com/gh_mirrors/vm/vm2api 点击查看 免费下载 vm2api 是一个使用虚拟机完全拟真方案做 AI 订阅转 API 的开源网关,它的核心卖点之一,就是不用向…

📰

两串电池主动均衡:MP2642GR-Z+TM4C1294硬件与固件方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

红队、CTF、企业评估:PentAGI 三种打开方式催生的新玩法

红队、CTF、企业评估:PentAGI 三种打开方式催生的新玩法 【免费下载链接】pentagi Fully autonomous AI Agents system capable of performing complex penetration testing tasks 项目地址: https://gitcode.com/GitHub_Trending/pe/pentagi 一句话下指令&a…

📰

WelcomeCoordinator 架构全景图:核心组件协作与数据流深度解读

【免费下载链接】welcome-coordinator Welcome Coordinator for Android 项目地址: https://gitcode.com/gh_mirrors/we/welcome-coordinator 点击查看 免费下载 WelcomeCoordinator 是一款来自 Redbooth 开源团队的 Android 引导页库(Welcome Wizard /…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬