【PyTorch】2024保姆级安装教程-Python-(CPU+GPU详细完整版)-
一、准备工作
-
pytorch需要python3.6及以上的python版本
-
我是利用Anaconda来管理我的python。可自行安装Anaconda。
-
Anaconda官网 Free Download | Anaconda
-
具体Anaconda安装教程可参考
https://blog.csdn.net/weixin_43412762/article/details/129599741?fromshare=blogdetail&sharetype=blogdetail&sharerId=129599741&sharerefer=PC&sharesource=2201_75436278&sharefrom=from_link
二、pytorch介绍
安装 PyTorch 时,可以选择在 CPU 或 GPU 上运行,取决于你的硬件支持和需求。
-
CPU版本安装:
CPU 版本适用于没有 GPU 或不需要使用 GPU 进行深度学习的情况。安装过程相对简单,因为没有依赖 GPU 驱动和 CUDA 的要求。
-
GPU版本安装:
如果你的计算机上有 NVIDIA GPU,并且你希望加速深度学习计算,可以安装 GPU 版本的 PyTorch。GPU 版本依赖于 CUDA 和 cuDNN。
三、CPU版本pytorch安装
为了更好的管理不同项目的Python项目,通常建议创建一个虚拟环境。可以隔离不同项目的依赖项,避免项目之间的冲突。
1、创建虚拟环境
安装好Anaconda后会有这些程序

输入以下指令可查看当前的虚拟环境
conda env list

利用 conda create 指令创建新的虚拟环境
conda create –n 虚拟环境名字(自己设置) python=版本
演示如下


输入y,等待安装

2、路径处理
如果安装后的虚拟环境没在 annconda3\enxs 的目录下,通常是以下几个原因导致的(以我的目录为例):
- 没有写入权限:如果当前用户对
C:\ProgramData\anaconda3\envs目录没有写入权限,Conda 会选择使用用户本地目(C:\Users\Xzwzh\.conda\envs)来存放环境。 - 用户环境配置:Conda 的配置文件
.condarc中可以设置envs_dirs,用于指定环境的默认存放位置。如果设置了用户本地目录,那么新建的环境会存放在那里。 - 环境隔离:在某些情况下,用户可能会故意选择将环境安装在用户目录下,以便不同用户使用各自的环境,避免对全局安装目录的修改。
如果希望将环境放在anaconda3\envs 目录下,可以在创建环境时显示指定 --prefix 参数。
例如:
以管理员权限运行命令提示符,注意,下面的命令要以管理员身份运行,否则报错
conda create --prefix C:\ProgramData\anaconda3\envs\pytorch_env python=3.8
也可以修改 .condarc 文件,将 envs_dirs 添加或修改为默认全局路径:
envs_dirs:- C:\ProgramData\anaconda3\envs
然后重新创建环境即可。
3、删除虚拟环境
通过环境名称删除
conda remove --name 环境名称 --all
通过环境路径删除
conda remove --prefix 路径 --all
4、配置镜像源
根据上述操作,以如下的环境列表为例(虚拟环境已经创建好):

由于安装指令都是从国外的通道下载,下载速度会非常慢。所以我们可以用国内的镜像地址下载pytorch
conda config --show
输入上述指令可以查看我们的通道地址

我的环境中有三个清华的镜像源。如果是之前没用过镜像源,这里只会显示dafaults。

| 镜像名 | 镜像地址 |
|---|---|
| 清华源镜像 | https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch |
| 阿里巴巴镜像 | http://mirrors.aliyun.com/anaconda/pkgs/main |
| 淘宝镜像源 | https://registry.npmmirror.com/ |
这里的淘宝镜像源不推荐,由于淘宝npm镜像的旧域名(如npm.taobao.org和registry.npm.taobao.org)已经停止服务,并且HTTPS证书已经过期,需要使用淘宝最新的镜像源。列表给出的是(2024年9月) 淘宝的最新镜像的地址。
conda config --add channels 通道地址
输入以上命令可以添加通道地址,添加后输入以下地址也可以查看通道地址(验证是否加上通道)
conda config --get

如果想删除通道,可执行下面代码
conda config --remove channels 通道地址
5、安装pytorch
1、首先激活环境变量
conda activate 创建的虚拟环境

2、进入pytorch官网,找到安装指令
点击Get started 进行如下配置

找到安装代码
conda install pytorch torchvision torchaudio cpuonly -c pytorch //注意,这种就是直接从国外下载了
用镜像源安装
conda install pytorch torchvision torchaudio cpuonly –c 镜像地址


直接复制自己对应的镜像源即可

输入y即可
报错处理:

如果出现如上报错,使用管理员身份进行上述步骤即可解决。
出现下图所示,就是安装完成。

6、验证pytorch是否安装成功
- 在安装pytorch的虚拟环境下输入
conda list查看是否有pytorch

-
在虚拟环境下运行python并导入torch

print(torch.__version__)
- 输入上述命令,显示PyTorch 的版本号,说明 PyTorch 已经成功安装。

四、GPU版本pytorch安装
首先和CPU版本安装一样,创建一个虚拟环境,前面提到,这里不在重复。

1、查看自己电脑的GPU
在任务管理器中可查看GPU

如果没安装显卡驱动,先安装最新的显卡驱动,到官网自行安装即可。
查看驱动版本。win + r ,输入cmd 进入终端,输入指令:
nvidia-smi

我的 CUDA 驱动版本是 12.1,这表示驱动所支持的最大 CUDA 运行时 API 版本是 12.1。因此,如果要安装 CUDA 运行时版本,就需要确保 CUDA 驱动版本 >= CUDA 运行时版本,也就是说可以安装 12.1 及更早的版本。
2、安装pytorch
直接进入创建的虚拟环境中输入命令,安装成功:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

3、验证是否安装成功
指令:
import torch
print(torch.__version__)
print(torch.cuda.is_available())
- 可以直接进入终端python运行指令检验

出现以上界面说明安装成功
- 也可以直接在pycharm编辑器中验证。



使用GPU环境,最后输出cu121、True,说明安装成功
五、补充
1、卸载当前的PyTorch版本
进入所在的虚拟环境,输入以下指令即可。
pip uninstall torch torchvision torchaudio

2、失败的安装过程
可以利用conda和pip进行安装,但是我都没安装成功,这里就不在过多介绍,可能是国内的镜像源很多都不能GPU版本的安装。可以参考。严格按照用pip安装应该能成功,只不过我当时安装指令错了。
https://blog.csdn.net/weixin_44752340/article/details/130542629?fromshare=blogdetail&sharetype=blogdetail&sharerId=130542629&sharerefer=PC&sharesource=2201_75436278&sharefrom=from_link
最后我直接下载轮子文件(.whl)进行安装。
https://download.pytorch.org/whl/torch_stable.html
上面这个是pytorch轮子文件的下载链接。根据自己的需求下载。
分别下载相应的torch、torchvision

我下载的是2.2.2版本torch和torchvision,对应的CUDA版本是11.8,python版本是3.8,正如绿色、蓝色框所示。注意后面对应的 win 和 linux。下载过程较长。
下载完后,将两个文件放在虚拟环境的目录下。然后运行:
pip install 轮子文件名(torch-2.2.2+cu118-cp38-cp38-win_amd64.whl)
但是我也安装失败了,后来我又安装的12.1的CUDA,也不行

应该是版本不兼容问题。
相关文章:
【PyTorch】2024保姆级安装教程-Python-(CPU+GPU详细完整版)-
一、准备工作 pytorch需要python3.6及以上的python版本 我是利用Anaconda来管理我的python。可自行安装Anaconda。 Anaconda官网 Free Download | Anaconda 具体Anaconda安装教程可参考 https://blog.csdn.net/weixin_43412762/article/details/129599741?fromshareblogdet…...
精选案例展 | 智己汽车—全栈可观测驱动智能化运营与成本优化
本案例为“观测先锋 2024 可观测平台创新应用案例大赛”精选案例,同时荣获IT168“2024技术卓越奖评选-年度创新解决方案”奖。 项目背景 近年来,中国汽车行业进入转型升级阶段,智能网联技术成为行业发展的核心。车联网、自动驾驶等技术的加速…...
MySQL 使用 `WHERE` 子句时 `COUNT(*)`、`COUNT(1)` 和 `COUNT(column)` 的区别解析
文章目录 1. COUNT() 函数的基本作用2. COUNT(*)、COUNT(1) 和 COUNT(column) 的详细对比2.1 COUNT(*) —— 统计所有符合条件的行2.2 COUNT(1) —— 统计所有符合条件的行2.3 COUNT(column) —— 统计某一列非 NULL 的记录数 3. 性能对比3.1 EXPLAIN 分析 4. 哪种方式更好&…...
Linux运维——网络管理
Linux网络管理 一、Linux网络应用要点二、命令常见用法2.1、curl2.1.1、发送GET请求2.1.2、发送POST请求2.1.3、设置请求头2.1.4、处理cookies2.1.5、处理重定向2.1.6、调试和详细信息2.1.7、使用代理2.1.8、文件上传2.1.9、其它常用选项2.1.10、综合示例 2.2、wget2.2.1、基本…...
STM32CUBEIDE FreeRTOS操作教程(十三):task api 任务访问函数
STM32CUBEIDE FreeRTOS操作教程(十三):task api 任务访问函数 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件,不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板…...
Jmeter+Jenkins接口压力测试持续集成
项目介绍 接口功能测试应用: http://www.weather.com.cn/data/cityinfo/<city_code>.html 测试功能:获取对应城市的天气预报 请求方法:Get 压测脚本开发工具:jmeter 源码脚本位置: https://github.com/shife…...
深入浅出ES6:现代JavaScript的基石
ES6(ECMAScript 2015)是JavaScript语言的一次重大更新,引入了许多新特性,使JavaScript更加强大、优雅和易于维护。这些特性已经成为现代JavaScript开发的基石,掌握它们对于任何JavaScript开发者都至关重要。本文将深入…...
实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能
下面将详细介绍如何实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能。我们将按照以下步骤进行: 步骤1&#x…...
潜水泵,高效排水,守护城市与农田|深圳鼎跃
洪水是常见的自然灾害,在春夏季节的我国降水多为丰富,容易造成城市内部的洪涝灾害。特别是低洼地区的积水,不仅容易造成城市交通的出行不便,还存在潜在的隐患,严重影响了人们正常生活。 潜水泵作为一种高效、可靠的排水…...
易基因:RNA甲基化修饰和R-loop的交叉调控:从分子机制到临床意义|深度综述
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 R-loop(RNA-DNA杂合结构)是转录调控、DNA复制和修复等关键细胞过程的重要组成部分。但R-loop异常积累可能会破坏基因组完整性,从而导致多种疾病的发生…...
115 道 MySQL 面试题,从简单到深入!
1. 什么是数据库事务? 数据库事务是一个作为单个逻辑工作单元执行的一系列操作。事务具有ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性…...
一周学会Flask3 Python Web开发-flask3上下文全局变量session,g和current_app
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili flask3提供了session,g和current_app上下文全局变量来方便我们操作访问数据。 以下是一个表格,用于比较Flask中的…...
MFC学习笔记-1
一、编辑框和按钮 //.h文件private:CString str;//给窗口类加了一个变量(定义一个成员变量),关联到IDC_EDIT1中(要在实现中关联,源文件文件夹中)CString str2;//接收button2,和IDC_EDIT2绑定 p…...
Linux搜索查找类指令
1、find指令 基本语法:find [搜索范围] [选项] 功能:将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。 常用选项: 操作 命令示例 说明 查找指定路径下的所有文件 find /path/to/dir 查找指定目…...
江协科技/江科大-51单片机入门教程——P[1-1] 课程简介P[1-2] 开发工具介绍及软件安装
本教程也力求在玩好单片机的同时了解一些计算机的基本概念,了解电脑的一些基本操作,了解电路及其元器件的基本理论,为我们学习更高级的单片机,入门IT和信息技术行业,打下一定的基础。 目录 1.课程简介 2.开发工具及…...
监听load和hashchange事件
监听load和hashchange事件 上篇文章中,我们已经将菜谱的数据给拿到,并且已经可以渲染到页面上,本篇我们将为程序添加一些事件; 注:本项目来自于Jonas Schmedtmann创建,文章仅仅作为学习作用! 菜…...
深度剖析Seata源码:解锁分布式事务处理的核心逻辑
文章目录 写在文章开头如何使用源码(配置转掉)基于AT模式详解Seata全链路流程Seata服务端启动本地服务如何基于GlobalTransaction注解开启事务客户端如何开启分布式事务RM和TC如何协调处理分支事务RM生成回滚日志事务全局提交与回滚小结参考写在文章开头 在当今分布式系统日益…...
在 Ansys Mechanical 中解决干涉拟合
有意和无意的过盈配合在工程设计和有限元分析 (FEA) 中很常见。当两个组件重叠或接触时,就会发生这种情况,从而产生应力和变形,必须仔细分析以确保功能正常。有意干涉,例如轴和轴承之间的压配合或用于固定金…...
JMeter性能问题
性能测试中TPS上不去的几种原因 性能测试中TPS上不去的几种原因_tps一直上不去-CSDN博客 网络带宽 连接池 垃圾回收机制 压测脚本 通信连接机制 数据库配置 硬件资源 压测机 业务逻辑 系统架构 CPU过高什么原因 性能问题分析-CPU偏高 - 西瓜汁拌面 - 博客园 US C…...
美国国防部(DoD)SysML v2迁移指南项目
DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 分享一篇SysML v1向SysML v2迁移的资料。 下载地址:https://ndia.dtic.mil/wp-content/uploads/2023/systems/Thurs_1560710_Stirk.pdf 核心内容用DeepSeek整理如下&#…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...
Spring AOP代理对象生成原理
代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】,这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...
PostgreSQL 与 SQL 基础:为 Fast API 打下数据基础
在构建任何动态、数据驱动的Web API时,一个稳定高效的数据存储方案是不可或缺的。对于使用Python FastAPI的开发者来说,深入理解关系型数据库的工作原理、掌握SQL这门与数据库“对话”的语言,以及学会如何在Python中操作数据库,是…...
PCA笔记
✅ 问题本质:为什么让矩阵 TT 的行列式为 1? 这个问题通常出现在我们对数据做**线性变换(旋转/缩放)**的时候,比如在 PCA 中把数据从原始坐标系变换到主成分方向时。 📌 回顾一下背景 在 PCA 中ÿ…...
