PyTorch|在张量运算中使用GPU

pytorch在张量运算时允许我们在GPU上进行计算,我们可以采用这些方法将数据无缝的移入或移出GPU。

当我们进入GPU时,我们可以使用cuda()方法 ,当我们进入CPU时,我们可以使用**cpu()**方法。

同时,我们还可以使用to() 方法,去GPU的时候,我们写到**('cuda')** ,去CPU的时候,我们写到**('cpu')**。

在训练过程中,要想利用我们的GPU,有两个基本要求:

  • 数据必须移到GPU上

  • 网络必须移到GPU上

默认情况下,在创建PyTorch张量或PyTorch神经网络模块时,会在CPU上初始化相应的数据。具体来说,这些数据存在于CPU的内存中。

下面是一些实例:

复制代码
>>> import torch
>>> data=torch.tensor([1,2,3,4])>>> data.devicedevice(type='cpu')
>>> v1=data.to('cuda')>>> v1.devicedevice(type='cuda', index=0)>>> v2=data.cuda()>>> v2.devicedevice(type='cuda', index=0)
>>> v3=v2.to('cpu')>>> v3.devicedevice(type='cpu')>>> v4=v2.cpu()>>> v4.device

然而,代码需要在不同的设备都能运行,也就是在不修改代码的情况下在GPU上可以使用或者在只能使用CPU的设备上运行

例如,假设我们写的代码到处使用cuda()方法,然后,我们把代码交给一个没有GPU的用户,这样做是行不通的。

对此,我们可以这样处理:​​​​​​​

复制代码
device=torch.device("cuda" if torch.cuda.is_available() else "cpu")input=data.to(device)network=Network()net=network.to(device)

总结起来,在我们编写的代码中,尽量使用这种形式:​​​​​​​

复制代码
device=torch.device("cuda" if torch.cuda.is_available() else "cpu")***=***.to(device)
相关推荐
lichuangcsdn2 分钟前
【Spring AI 学习(一)】spring ai是什么
人工智能·学习·spring·spring ai
小大宇2 分钟前
python sqlalchemy 案例
开发语言·python
叫我Paul就好3 分钟前
RAG 入门到精通 - 一次完整的评估过程
人工智能·软件工程·rag
小保CPP6 分钟前
OpenCV C++基于模糊数学的图像滤波
c++·人工智能·opencv·计算机视觉
木心术119 分钟前
2026年设计类职业AI工具推荐与技能图谱
人工智能
handsomestWei21 分钟前
RNN和QKV区别
人工智能·rnn·深度学习
AI新角度24 分钟前
构建系统优化:增量编译与缓存命中率提升
人工智能
Ulyanov32 分钟前
雷达导引头仿真中的坐标系——从惯性系到量测角
开发语言·python·算法·系统仿真·雷达信号处理·雷达导引头
codeboss34 分钟前
做网页变更监控,我在“降噪”上踩过的 7 个坑
爬虫·python
陈嘿萌1 小时前
ICML 2026 | 福州大学 LaRA-Fusion:用双环约束优化红外与可见光融合潜空间的拓扑结构
人工智能·图像融合·icml2026·福州大学·双环约束