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

Pytorch的安装和使用

首先需要了解PyTorch不同版本的区别:PyTorch有CPU和GPU两种版本,在包库中,Pytorch实际的库名称叫做”torch“而非“pytorch”,且GPU版本功能强于CPU。

1. PyTorch 版本区别

注意:互斥性
在同一个环境里面,CPU版和GPU(CUDA)版的PyTorch是互斥的,即只能存在一个版本的 PyTorch,它们不能同时安装。

CPU 版本和GPU 版本的PyTorch本质上是不同的 wheel 包.whl),彼此之间会覆盖。如果尝试在同一个 Python 环境中同时安装,会发生:

  • 后装的版本会覆盖先装的版本;
  • PyTorch 最终会以某一个版本为准运行(不可能同时运行两个);
  • 所以不能实现“自动选择 CPU 或 GPU 运行”那种混合安装思路。
名称是否支持 GPU是否支持 CPU适用场景
CPU 版本❌ 不支持✅ 支持没有 NVIDIA 显卡,轻量运行
GPU 版本(CUDA)✅ 支持(要求 CUDA 驱动)✅ 支持有 NVIDIA 显卡,追求加速训练性能

注意:PyTorch GPU 版本也可以运行在 CPU 上。

其它:

  • 安装的是 GPU 版本但没有可用 GPU(或者驱动有问题)时PyTorch 仍然可以在 CPU 上运行,但是它会 自动 fallback 到 CPU。
  • 但是要注意,此时你不能用 .cuda().to("cuda") 把模型或数据移到 GPU,否则会报错。

2. 不同版本的PyTorch如何安装

2.1 安装 CPU 版本(适合无 NVIDIA 显卡的用户)

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

优点:不依赖 CUDA 驱动,轻便稳定

2.2 安装 GPU 版本(适合有 NVIDIA 显卡的用户)

需要先确认 CUDA 驱动是否安装成功(可用 nvidia-smi 检查)。
以CUDA 11.8为例:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

其它版本安装方式见:
👉 https://pytorch.org/get-started/locally/

3. 如何确定自己安装的PyTorch是否支持GPU?

3.1 快速判断当前是否支持 GPU

可以通过一段非常简单的 Python 代码判断你当前安装的 PyTorch 是 CPU 版本,还是支持 GPU(CUDA)的版本。
打开 PyCharm 或命令行运行以下代码:

import torch

print("CUDA 是否可用:", torch.cuda.is_available())
print("CUDA 版本:", torch.version.cuda)
print("当前 PyTorch 版本:", torch.__version__)

下面进行输出解读:

情况一:输出如下(典型 GPU 版本)

CUDA 是否可用: True
CUDA 版本: 11.8
当前 PyTorch 版本: 2.1.0+cu118

说明:

  • 你安装的是 支持 GPU 的 PyTorch(带 CUDA 11.8)
  • 系统中也检测到了 NVIDIA GPU(你可以用 .cuda()

情况二:输出如下(典型 CPU 版本)

CUDA 是否可用: False
CUDA 版本: None
当前 PyTorch 版本: 2.1.0+cpu

说明:

  • 你安装的是 纯 CPU 版本
  • 没有 CUDA 支持(不能使用 GPU)

总结:

方法判断依据
torch.cuda.is_available()True 表示支持 GPU
torch.version.cuda不为 None 表示是 GPU 版本
torch.__version__包含 +cuXXX 是 GPU 版本,+cpu 是 CPU 版本
pip show torch版本信息也能区分

3.2 通过 pip 检查 PyTorch 包信息

你也可以运行下面命令查看安装包版本:

pip show torch

Version 字段,比如:

  • 2.1.0+cpu → CPU 版本
  • 2.1.0+cu118 → 支持 GPU,CUDA 11.8 版本
  • 2.2.0+cu121 → 支持 GPU,CUDA 12.1

3.3 判断是否能使用 GPU(可能无法确定Pytorch的实际版本

你也可以尝试创建一个张量并放入 GPU:

import torch
x = torch.tensor([1.0])

# 尝试移动到 GPU,如果失败说明不支持
try:
    x_cuda = x.to("cuda")
    print("成功移动到 GPU!")
except Exception as e:
    print("失败:当前 PyTorch 不支持 GPU")
    print("错误信息:", e)

或者在命令行中依次输入:

$ python
>>> import torch
>>> x = torch.tensor([1.0])
>>> x_cuda = x.to("cuda")

如果不报错,则当前 PyTorch支持 GPU,但是报错可确定当前不支持CPU,但是不能确定非GPU版本。

4. (建议)编写兼容 CPU 和 GPU 的 PyTorch 代码

强烈建议大家所有项目中都采用以下写法,这样代码可以跨平台、跨设备运行,而无需改动

import torch

# 选择运行设备:有GPU就用GPU,否则自动fallback到CPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

# 示例:将模型&数据移动到合适的设备
model = MyModel().to(device)
inputs = inputs.to(device)
labels = labels.to(device)

# 正常训练或推理
outputs = model(inputs)

这种情况下一套代码,无论换一台有或者没有GPU的计算机,都不用修改代码,有GPU就用GPU,没有就用CPU。但是注意要求:安装 GPU 版本的 PyTorch,并确保环境没问题。

5. (建议)使用虚拟环境管理版本

另一种可能做法是用两个不同的虚拟环境(用 condavenv 管理环境),例如,使用conda创建两个环境分别用于CPU和GPU:

  • 创建一个虚拟环境安装 CPU 版本(轻量、开发调试用)
  • 创建另一个虚拟环境安装 GPU 版本(训练/部署)
# CPU 环境
conda create -n torch-cpu python=3.10
conda activate torch-cpu
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

# GPU 环境
conda create -n torch-gpu python=3.10
conda activate torch-gpu
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

6. 常见疑问与排查建议

问题原因解决方法
安装了GPU版但运行仍是CPU驱动或CUDA版本不匹配检查 nvidia-smi 是否能用,重新装CUDA驱动或匹配版本
无GPU,想用轻量版误装了GPU 版本卸载GPU版,用上文方式安装CPU版本
.cuda() 报错当前没有可用GPU.to(device) 并自动检测GPU
PyTorch安装后跑不起来环境冲突建议用虚拟环境隔离安装

相关文章:

  • 深入解析 Jenkins Agent 的 .jnlp 启动文件
  • MuJoCo 仿真 + TOPPRA 最优时间轨迹规划!机械臂运动效率拉满(附代码)
  • 小刚说C语言刷题——第18讲 循环之while和do-while语句
  • 深入理解Spring IoCDI
  • Pandas 库
  • Streamlit性能优化:缓存与状态管理实战
  • Elasticsearch:加快 HNSW 图的合并速度
  • 自己搭建cesium应用程序
  • 河道违建检测数据集VOC+YOLO格式223张1类别
  • spdlog C++日志库使用教程
  • 试剂SYBR 14核酸染料在染色时的操作步骤(说明)
  • 【python3】关于像素密度计算
  • AI大模型从0到1记录学习 day15
  • 初识 Three.js:开启你的 Web 3D 世界 ✨
  • 【android bluetooth 框架分析 01】【关键线程 2】【bt_stack_manager_thread线程介绍】
  • 告别运动控制不同步:某车企用异构PLC实现99.98%焊接合格率
  • VMware Fusion Pro 13 for Mac虚拟机软件
  • LabVIEW运动控制(三):EtherCAT运动控制器的高效加工指令自定义封装
  • 滤波器:模拟滤波器和数字滤波器的区别
  • 【嵌入式系统设计师】知识点:第9章 嵌入式系统安全性基础知识
  • 黑灰产工作室为境外诈骗集团养号引流,冒充美女与男性裸聊后敲诈勒索
  • 巴基斯坦称对印精准打击造成设施损坏和人员伤亡
  • 优秀“博主”在上海杨浦购房最高补贴200万元,有何条件?
  • 1450亿元!财政部拟发行2025年中央金融机构注资特别国债(二期)
  • 重温经典|《南郭先生》:不模仿别人,不重复自己
  • 晶圆销量上升,中芯国际一季度营收增长近三成,净利增超1.6倍